NetBSD/sys/miscfs
ad 94843b1390 - Add and use wrapper functions that take and acquire page interlocks, and pairs
of page interlocks.  Require that the page interlock be held over calls to
  uvm_pageactivate(), uvm_pagewire() and similar.

- Solve the concurrency problem with page replacement state.  Rather than
  updating the global state synchronously, set an intended state on
  individual pages (active, inactive, enqueued, dequeued) while holding the
  page interlock.  After the interlock is released put the pages on a 128
  entry per-CPU queue for their state changes to be made real in batch.
  This results in in a ~400 fold decrease in contention on my test system.
  Proposed on tech-kern but modified to use the page interlock rather than
  atomics to synchronise as it's much easier to maintain that way, and
  cheaper.
2019-12-31 22:42:50 +00:00
..
deadfs Add "void *extra" argument to vcache_new() so a file system may 2019-01-01 10:06:54 +00:00
fdesc Rename min/max -> uimin/uimax for better honesty. 2018-09-03 16:29:22 +00:00
fifofs Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
genfs - Add and use wrapper functions that take and acquire page interlocks, and pairs 2019-12-31 22:42:50 +00:00
kernfs Add missing operation VOP_GETPAGES() returning EFAULT. 2019-08-29 06:43:13 +00:00
nullfs Set IMNT_MPSAFE before creating the vnode for the root of the 2019-12-15 20:30:56 +00:00
overlay Set "mnt_lower" before the first file system operation on the new file system. 2019-02-20 10:05:59 +00:00
procfs Rename uvm_free() -> uvm_availmem(). 2019-12-31 13:07:09 +00:00
specfs Add a new member to struct vfsstat and grow the unused members 2019-09-22 22:59:37 +00:00
umapfs Clean up debugging cruft that somehow made it into my previous commit. 2019-08-20 21:18:10 +00:00
Makefile Remove miscfs/syncfs and 2015-05-06 15:57:07 +00:00