freebsd-dev/sys
Rick Macklem 175b3f31d3 Both NFS clients can deadlock when using the "rdirplus" mount
option. This can occur when an nfsiod thread that already holds
a buffer lock attempts to acquire a vnode lock on an entry in
the directory (a LOR) when another thread holding the vnode lock
is waiting on an nfsiod thread. This patch avoids the deadlock by disabling
readahead for this case, so the nfsiod threads never do readdirplus.
Since readaheads for directories need the directory offset cookie
from the previous read, they cannot normally happen in parallel.
As such, testing by jhb@ and myself didn't find any performance
degredation when this patch is applied. If there is a case where
this results in a significant performance degradation, mounting
without the "rdirplus" option can be done to re-enable readahead
for directories.

Reported and tested by:	jhb
Reviewed by:	jhb
MFC after:	2 weeks
2013-04-18 13:09:04 +00:00
..
amd64 Print RDSEED, ADX, and SMAP. 2013-04-18 01:21:44 +00:00
arm - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
boot The CELL fields can be various integer types depending on the platform 2013-04-07 05:53:42 +00:00
bsm Implement chflagsat(2) system call, similar to fchmodat(2), but operates on 2013-03-21 22:59:01 +00:00
cam - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
cddl DTrace: Revert r249367 2013-04-17 02:20:17 +00:00
compat Regen. 2013-04-02 05:30:52 +00:00
conf Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
contrib Forcibly defining _KERNEL is bad idea. Toss some code so that ip_var.h 2013-04-08 19:20:27 +00:00
crypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
ddb
dev Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
fs Both NFS clients can deadlock when using the "rdirplus" mount 2013-04-18 13:09:04 +00:00
gdb
geom Comment typo fix. 2013-04-16 22:42:40 +00:00
gnu/fs/reiserfs Garbage collect XFS bits which are now already completely disconnected 2013-03-02 15:33:54 +00:00
i386 - Correct spelling in comments 2013-04-17 11:56:11 +00:00
ia64 Remove ctl(4) from GENERIC. Also remove 'options CTL_DISABLE' 2013-04-12 16:25:03 +00:00
isa
kern On non-ACPI i386 mp_ncpus is initialized at SI_SUB_CPU, and this 2013-04-17 18:43:33 +00:00
kgssapi Piete.Brooks at cl.cam.ac.uk reported via email a crash which was 2012-12-18 00:25:48 +00:00
libkern Add __aeabi_memset to libkern, implemented using memset, as clang may 2013-03-16 23:11:55 +00:00
mips Add the static kernel boot environment, needed to actually boot this thing. 2013-04-17 18:26:01 +00:00
modules Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
net Switch lagg(4) statistics to counter(9). 2013-04-15 13:00:42 +00:00
net80211 Implement a utility function to return the current TX power cap for 2013-04-16 20:36:32 +00:00
netatalk
netgraph - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
netinet - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
netinet6 Fix build after r249543. 2013-04-16 16:59:29 +00:00
netipsec Use IP6STAT_INC/IP6STAT_DEC macros to update ip6 stats. 2013-04-09 07:11:22 +00:00
netipx
netnatm
netpfil Fix ipfw rule validation partially broken by r248552. 2013-04-01 11:28:52 +00:00
netsmb Call make_dev_credf() rather than using the couple make_dev()/dev_ref(). 2013-03-09 16:58:19 +00:00
nfs Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
nfsclient Both NFS clients can deadlock when using the "rdirplus" mount 2013-04-18 13:09:04 +00:00
nfsserver Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
nlm
ofed Check for SS_NBIO in the socket state field rather than socket buffer 2013-04-03 20:31:10 +00:00
opencrypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
pc98 - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
pci - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
powerpc Generate a LINT for powerpc and for powerpc64. 2013-04-11 22:18:20 +00:00
rpc Fix a potential socket leak in the NFS server. If a client closes its 2013-04-08 19:03:01 +00:00
security Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
sparc64 Remove ctl(4) from GENERIC. Also remove 'options CTL_DISABLE' 2013-04-12 16:25:03 +00:00
sys Add a new set of notes to a process core dump to store procstat data. 2013-04-16 19:19:14 +00:00
teken
tools Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
ufs - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
vm When calculating the number of reserved nodes, discount the pages that will 2013-04-18 05:34:33 +00:00
x86 Move the previously added CPUID7 macros to CPUID_STDEXT. 2013-04-18 07:09:27 +00:00
xdr Use m_get() and m_getcl() instead of compat macros. 2013-03-15 10:21:18 +00:00
xen
Makefile Remove netncp cscope entry missed in r248097 2013-03-12 14:21:52 +00:00