Date: Thu, 25 Jun 2009 11:52:33 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/fs/nfsclient nfs_clvnops.c src/sys/net if_spppsubr.c if_stf.c src/sys/netinet if_ether.c in.c in_gif.c in_mcast.c in_pcb.c in_var.h ip_carp.c ip_icmp.c ip_input.c raw_ip.c src/sys/netipsec key.c src/sys/nfsclient nfs_vnops.c Message-ID: <200906251153.n5PBrMjC079578@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rwatson 2009-06-25 11:52:33 UTC FreeBSD src repository Modified files: sys/fs/nfsclient nfs_clvnops.c sys/net if_spppsubr.c if_stf.c sys/netinet if_ether.c in.c in_gif.c in_mcast.c in_pcb.c in_var.h ip_carp.c ip_icmp.c ip_input.c raw_ip.c sys/netipsec key.c sys/nfsclient nfs_vnops.c Log: SVN rev 194951 on 2009-06-25 11:52:33Z by rwatson Add a new global rwlock, in_ifaddr_lock, which will synchronize use of the in_ifaddrhead and INADDR_HASH address lists. Previously, these lists were used unsynchronized as they were effectively never changed in steady state, but we've seen increasing reports of writer-writer races on very busy VPN servers as core count has gone up (and similar configurations where address lists change frequently and concurrently). For the time being, use rwlocks rather than rmlocks in order to take advantage of their better lock debugging support. As a result, we don't enable ip_input()'s read-locking of INADDR_HASH until an rmlock conversion is complete and a performance analysis has been done. This means that one class of reader-writer races still exists. MFC after: 6 weeks Reviewed by: bz Revision Changes Path 1.8 +4 -0 src/sys/fs/nfsclient/nfs_clvnops.c 1.137 +2 -0 src/sys/net/if_spppsubr.c 1.72 +5 -1 src/sys/net/if_stf.c 1.204 +11 -1 src/sys/netinet/if_ether.c 1.139 +46 -15 src/sys/netinet/in.c 1.47 +7 -1 src/sys/netinet/in_gif.c 1.25 +2 -0 src/sys/netinet/in_mcast.c 1.256 +15 -6 src/sys/netinet/in_pcb.c 1.72 +11 -0 src/sys/netinet/in_var.h 1.69 +16 -3 src/sys/netinet/ip_carp.c 1.134 +4 -0 src/sys/netinet/ip_icmp.c 1.367 +6 -0 src/sys/netinet/ip_input.c 1.217 +13 -1 src/sys/netinet/raw_ip.c 1.57 +3 -0 src/sys/netipsec/key.c 1.311 +4 -0 src/sys/nfsclient/nfs_vnops.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906251153.n5PBrMjC079578>