Skip site navigation (1)Skip section navigation (2)
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>