cvs commit: src/sys/fs/fifofs fifo_vnops.c
Robert Watson
rwatson at FreeBSD.org
Thu Sep 22 03:51:13 PDT 2005
rwatson 2005-09-22 10:51:12 UTC
FreeBSD src repository
Modified files:
sys/fs/fifofs fifo_vnops.c
Log:
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
Revision Changes Path
1.127 +16 -3 src/sys/fs/fifofs/fifo_vnops.c
More information about the cvs-src
mailing list