cvs commit: src/sys/fs/fifofs fifo_vnops.c

Robert Watson rwatson at
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 
  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