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. -- Mindaugas
