NetBSD/sys/netinet
tls 4e65861033 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 matt@.
2010-03-31 07:31:15 +00:00
..
accept_filter.h Change copyright statement to NetBSD 2-clause with correct attribution. 2008-08-10 14:07:41 +00:00
accf_data.c Add a direction argument to socket upcalls, so they can tell why they've 2009-09-02 14:56:57 +00:00
accf_http.c Add a direction argument to socket upcalls, so they can tell why they've 2009-09-02 14:56:57 +00:00
cpu_in_cksum.c
files.ipfilter ipfilter depends on bpf_filter, not bpfilter (since the year 2000). 2010-01-24 14:25:57 +00:00
files.netinet
icmp6.h add enough info to let rtadvd compile with route-info. 2009-10-31 22:32:17 +00:00
icmp_private.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
icmp_var.h PR/42243: Yasuoka Masahiko: Add "net.inet.icmp.bmcastecho" sysctl support, 2009-12-07 18:47:24 +00:00
if_arp.c ar_tha() can return NULL; treat this as an error. 2009-11-20 02:14:56 +00:00
if_atm.c Remove extra whitespace added by a stupid tool. 2009-04-18 14:58:02 +00:00
if_atm.h Constify the rt_addrinfo argument to the ifa_rtrequest member 2008-10-24 17:07:33 +00:00
if_ether.h
if_inarp.h remove unused #define. 2009-02-18 13:17:50 +00:00
igmp_var.h Make IGMP stats per-cpu. 2008-04-15 16:02:03 +00:00
igmp.c Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
igmp.h
in4_cksum.c
in_cksum.c
in_gif.c *** Summary *** 2008-11-07 00:20:01 +00:00
in_gif.h
in_ifattach.h
in_offload.c
in_offload.h
in_pcb_hdr.h
in_pcb.c Implicit EPERM -> explicit EACCES. 2009-05-12 22:22:46 +00:00
in_pcb.h Add the IP_MINTTL socket option. 2009-07-17 22:02:54 +00:00
in_proto.c Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
in_proto.h
in_selsrc.c Drop 3rd and 4th clauses from David Young's license. 2009-10-19 23:19:37 +00:00
in_selsrc.h
in_systm.h
in_var.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
in.c Fixed a number of race conditions in the case of receiving ipv4 packet. 2010-03-12 13:33:19 +00:00
in.h Import pfsync support from OpenBSD 4.2 2009-09-14 10:36:48 +00:00
ip6.h
ip_carp.c Redefine bpf linkage through an always present op vector, i.e. 2010-01-19 22:08:16 +00:00
ip_carp.h Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
ip_ecn.c
ip_ecn.h Remove LKMs and switch to the module framework, pass 1. 2008-11-12 12:35:50 +00:00
ip_encap.c Make it possible to register delayed radix tree head inits which 2009-05-27 17:46:49 +00:00
ip_encap.h Make dom_maxrtkey of inet/inet6domain the size of the ip_encap pack 2008-11-25 18:28:05 +00:00
ip_etherip.c Redefine bpf linkage through an always present op vector, i.e. 2010-01-19 22:08:16 +00:00
ip_etherip.h
ip_flow.c ansify function definitions 2009-03-15 22:16:09 +00:00
ip_icmp.c PR/42243: Yasuoka Masahiko: Add "net.inet.icmp.bmcastecho" sysctl support, 2009-12-07 18:47:24 +00:00
ip_icmp.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
ip_id.c
ip_input.c Don't hold kernel lock across call to ip_input() -- it blocked *all* 2010-03-31 07:31:15 +00:00
ip_mroute.c bzero -> memset 2009-03-18 16:00:08 +00:00
ip_mroute.h make this compile as proposed by dholland@ 2008-08-07 06:20:14 +00:00
ip_output.c Add the IP_MINTTL socket option. 2009-07-17 22:02:54 +00:00
ip_private.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ip_var.h Init ipflow pool dynamically instead of using a linkset. 2009-02-01 17:04:11 +00:00
ip.h
Makefile
pim_var.h
pim.h
raw_ip.c Remove superfluous cast of a pointer to void *. 2009-12-09 00:45:25 +00:00
tcp_congctl.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tcp_congctl.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tcp_debug.c Remove extra whitespace added by a stupid tool. 2009-04-18 14:58:02 +00:00
tcp_debug.h
tcp_fsm.h
tcp_input.c tcp sockbuf autoscaling was initially added turned off because it 2010-01-26 18:09:07 +00:00
tcp_output.c tcp sockbuf autoscaling was initially added turned off because it 2010-01-26 18:09:07 +00:00
tcp_private.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tcp_sack.c POOL_INIT -> pool_init 2009-05-27 17:41:03 +00:00
tcp_seq.h
tcp_subr.c Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
tcp_timer.c Whitespace. 2008-11-10 01:06:43 +00:00
tcp_timer.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tcp_usrreq.c Get the uid from the socket's credentials. 2009-12-30 06:59:32 +00:00
tcp_var.h Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
tcp.h
tcpip.h
udp_private.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
udp_usrreq.c Replace a large number of link set based sysctl node creations with 2009-09-16 15:23:04 +00:00
udp_var.h Convert socket options code to use a sockopt structure 2008-08-06 15:01:23 +00:00
udp.h