From owner-cvs-src-old@FreeBSD.ORG Thu Jun 25 11:53:23 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31D3F1065686 for ; Thu, 25 Jun 2009 11:53:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F34CE8FC0A for ; Thu, 25 Jun 2009 11:53:22 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5PBrM2G079579 for ; Thu, 25 Jun 2009 11:53:22 GMT (envelope-from rwatson@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5PBrMjC079578 for cvs-src-old@freebsd.org; Thu, 25 Jun 2009 11:53:22 GMT (envelope-from rwatson@repoman.freebsd.org) Message-Id: <200906251153.n5PBrMjC079578@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to rwatson@repoman.freebsd.org using -f From: Robert Watson Date: Thu, 25 Jun 2009 11:52:33 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD 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 X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2009 11:53:24 -0000 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