Hello,
As we are trying to bring more parallelism in our network stack, I would
like to make IPv4 and IPv6 input queues lockless. This is implemented by
replacing struct ifqueue and macros around it with a pktqueue interface.
This interface also abstracts and handles network ISR scheduling and that
will allow us to easily add receiver-side packet steering later.
http://www.netbsd.org/~rmind/ip_pktq.diff
The patch makes the following changes:
- Implements pktqueue interface (see pktqueue.{c,h} files).
- Replaces ipintrq and ip6intrq with the pktqueue mechanism.
- Eliminates kernel-lock from ipintr() and ip6intr().
- Some preparation work to push softnet_lock out of ipintr().
Extra testing would be helpful.
Thanks.