Yeah, the bug is unrelated to this patch. I'll open a PR against netmap and won't let it block committing work! And thank you very much for being willing to commit this patch! ^_^
Mar 9 2016
Jan 9 2016
Jan 8 2016
I'm testing on the master branch of the repo cloned from https://github.com/freebsd/freebsd.git with GENERIC conf on a desktop computer. And I can also reproduce this panic in VirtualBox with the image downloaded from http://mirrors.aliyun.com/freebsd/snapshots/VM-IMAGES/11.0-CURRENT/amd64/20151217/FreeBSD-11.0-CURRENT-amd64-20151217-r292413.vhd.xz
I tried to test this patch on -HEAD, but it caused kernel panic. It seems that there is a bug in the kqueue support code of netmap. And I can reproduce the kernel panic with this simple program on -HEAD:
Oct 9 2015
ok, this looks good. I'll see if I can get gnn / bz to review this before I commit it to -HEAD.
Thanks very much for digging into this!
Replace the error handling code in ip6_direct_input() with KASSERT(), because this tag is mandatory.
I mean this line!!!
Oops! I didn't mean this line!
Right - so it may have a new src/dst L3/L4 which means it needs to go back through the stack.
So as long as it's going back through and getting re-hashed on its trip though, I think we're okay.
How about adding a counter for when we drop frames on that direct dispatch v6 netisr so people can see when things are failing? Then I think we'll be ready.
I have defined a struct to save the context info for reinjecting. Many thanks! ^_^
Define a struct to save the context info for reinjecting.
Oct 8 2015
Use an mbuf tag instead of the mis-understood fields.
Sep 19 2015
Sep 18 2015
Sep 17 2015
Sep 13 2015
Fix various bugs.
Remove some obsolete comments about the flowid of directly dispatched frames.
Now the flowid of directly dispatched frames will be recalculated by
rss_soft_m2cpuid_v4() if needed. So there is no such assumption any more.
Sep 11 2015
This patch requires more work. I'm so sorry!!! >_<
Sep 10 2015
Fix the bug related to atomic fragments in the previous patch
Atomic fragments should also be dispatched to ip6_direct.
Sep 7 2015
Sep 4 2015
Sep 3 2015
Aug 28 2015
Aug 27 2015
Use ppsratelimit() for doing message rate limiting and and a global rate limit (maxpps, ie. the 3rd parameter of ppsratelimit()) for RSS.
Actually, we've hand-rolled 'ratecheck()'. Would you like to modify your code to use ppsratecheck() instead? That'd make this all much easier.