Module Name: src Committed By: tls Date: Wed Mar 31 07:31:15 UTC 2010
Modified Files: src/sys/netinet: ip_input.c Log Message: Don't hold kernel lock across call to ip_input() -- it blocked *all* hardware interrupts for the length of time it took for all dequeued packets to flow up the stack (on multiprocessors only). Initial testing shows performance impact is minimal -- since this temporary fix actually means taking/releasing the kernel lock per-packet, that seems acceptable. Holding the kernel lock across the ip_input() call duplicated the exclusion intended to be provided by the socket locks/softnet lock (same lock, for INET/INET6 sockets) and could mask serious bugs. Several hours' testing didn't turn any up but I'd be surprised if some don't now appear. Damon Permezel noticed the problem. Temporary fix suggested by m...@. To generate a diff of this commit: cvs rdiff -u -r1.284 -r1.285 src/sys/netinet/ip_input.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.