freebsd-dev/sys/fs
Robert Watson 7028887eac Add fi_sx, an sx lock to serialize I/O operations on the socket pair
underlying the POSIX fifo implementation.  In 6.x/7.x, fifo access is
moved from the VFS layer, where it was serialized using the vnode
lock, to the file descriptor layer, where access is protected by a
reference count but not serialized.  This exposed socket buffer
locking to high levels of parallelism in specific fifo workloads, such
as make -j 32, which expose as yet unresolved socket buffer bugs.

fi_sx re-adds serialization about the read and write routines,
although not paths that simply test socket buffer mbuf queue state,
such as the poll and kqueue methods.  This restores the extra locking
cost previously present in some cases, but is an effective workaround
for the instability that has been experienced.  This workaround should
be removed once the bug in socket buffer handling has been fixed.

Reported by:	kris, jhb, Julien Gabel <jpeg at thilelli dot net>,
		Peter Holm <peter at holm dot cc>, others
MFC after:	3 days
2005-09-22 10:51:12 +00:00
..
cd9660 - restore the ability to mount cd9660 filesystems as root by inverting 2005-08-14 04:19:36 +00:00
coda Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
deadfs - Deadfs may now use the standard vop lock, get rid of dead_lock(). 2005-03-13 12:06:20 +00:00
devfs Rewamp DEVFS internals pretty severely [1]. 2005-09-19 19:56:48 +00:00
fdescfs Remove the need to forward declare statics by moving them around. 2005-08-10 07:08:14 +00:00
fifofs Add fi_sx, an sx lock to serialize I/O operations on the socket pair 2005-09-22 10:51:12 +00:00
hpfs Unbreak hpfs/ntfs/udf/ext2fs/reiserfs mounting. 2005-09-03 20:23:41 +00:00
msdosfs Ensure the full value is written into inode variables. 2005-09-07 10:32:58 +00:00
ntfs Cast bf_sysid to const char * when passing it to strncmp(), because 2005-09-11 16:02:14 +00:00
nullfs Handle a race condition where NULLFS vnode can be cleaned while threads 2005-09-15 19:21:26 +00:00
nwfs Do not dereference dvp pointer before doing a NULL check. 2005-05-11 19:08:38 +00:00
portalfs - We no longer have to bother with PDIRUNLOCK, lookup() handles it for us. 2005-03-28 09:34:36 +00:00
procfs Jumbo-commit to enhance 32 bit application support on 64 bit kernels. 2005-06-30 07:49:22 +00:00
pseudofs Eliminate an unnecessary bcopy(). 2005-08-12 12:22:05 +00:00
smbfs Staticize a symbol used only in this file. 2005-05-06 20:47:09 +00:00
udf Unbreak hpfs/ntfs/udf/ext2fs/reiserfs mounting. 2005-09-03 20:23:41 +00:00
umapfs - Update vfs_root implementations to match the new prototype. None of 2005-03-24 07:36:16 +00:00
unionfs Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00