freebsd-dev/sys/nfsclient
Robert Watson 2d9cfabad4 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
2009-06-25 11:52:33 +00:00
..
bootp_subr.c Rename the host-related prison fields to be the same as the host.* 2009-06-13 15:39:12 +00:00
krpc_subr.c Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
krpc.h
nfs_bio.c Fix some of the style errors in *getpages(). 2009-06-18 05:56:24 +00:00
nfs_diskless.c After cleaning up rt_tables from vnet.h and cleaning up opt_route.h 2009-06-23 17:03:45 +00:00
nfs_kdtrace.c Fix typo in comment. 2009-05-04 02:06:39 +00:00
nfs_kdtrace.h Fix two bugs in DTrace tracing of accesscache and attrcache load events: 2009-03-24 23:16:48 +00:00
nfs_krpc.c Make sure we feed 32bit align memory to nfsm_dissect otherwise we will fault 2009-05-24 13:22:00 +00:00
nfs_lock.c Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfs_lock.h For reasons unknown, the nfs locking code used a fifo to send requests to 2004-12-06 08:31:32 +00:00
nfs_nfsiod.c Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfs_node.c Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfs_socket.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
nfs_subs.c Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfs_vfsops.c Rename the host-related prison fields to be the same as the host.* 2009-06-13 15:39:12 +00:00
nfs_vnops.c Add a new global rwlock, in_ifaddr_lock, which will synchronize use of the 2009-06-25 11:52:33 +00:00
nfs.h Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfsargs.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
nfsdiskless.h consolidate parsing of nfs root mount options in one place 2006-12-06 02:15:25 +00:00
nfsm_subs.h Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfsmount.h Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfsnode.h Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00
nfsstats.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nlminfo.h - Fix leak of struct nlminfo on process exit. 2005-10-26 07:18:37 +00:00