freebsd-dev/sys/ufs/ffs
Kirk McKusick 58941b9f15 Restructuring of the soft updates code to set it up so that the
single kernel-wide soft update lock can be replaced with a
per-filesystem soft-updates lock. This per-filesystem lock will
allow each filesystem to have its own soft-updates flushing thread
rather than being limited to a single soft-updates flushing thread
for the entire kernel.

Move soft update variables out of the ufsmount structure and into
their own mount_softdeps structure referenced by ufsmount field
um_softdep.  Eventually the per-filesystem lock will be in this
structure. For now there is simply a pointer to the kernel-wide
soft updates lock.

Change all instances of ACQUIRE_LOCK and FREE_LOCK to pass the lock
pointer in the mount_softdeps structure instead of a pointer to the
kernel-wide soft-updates lock.

Replace the five hash tables used by soft updates with per-filesystem
copies of these tables allocated in the mount_softdeps structure.

Several functions that flush dependencies when too many are allocated
in the kernel used to operate across all filesystems. They are now
parameterized to flush dependencies from a specified filesystem.
For now, we stick with the round-robin flushing strategy when the
kernel as a whole has too many dependencies allocated.

While there are many lines of changes, there should be no functional
change in the operation of soft updates.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix
2013-10-21 00:28:02 +00:00
..
ffs_alloc.c Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
ffs_balloc.c Make better use of metadata area by avoiding using it for data blocks 2013-07-02 21:07:08 +00:00
ffs_extern.h First of several cleanups to soft dependency implementation. 2013-10-20 20:41:38 +00:00
ffs_inode.c - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
ffs_rawread.c Do not remap usermode pages into KVA for physio. 2013-03-19 14:43:57 +00:00
ffs_snapshot.c Only copy as much bytes as there in superblock, instead of the full 2013-07-12 18:52:33 +00:00
ffs_softdep.c Restructuring of the soft updates code to set it up so that the 2013-10-21 00:28:02 +00:00
ffs_subr.c
ffs_suspend.c There are several code sequences like 2013-07-09 20:49:32 +00:00
ffs_tables.c
ffs_vfsops.c Third of several cleanups to soft dependency implementation. 2013-10-20 21:11:40 +00:00
ffs_vnops.c UFS support of the unmapped i/o for the user data buffers. 2013-03-19 15:08:15 +00:00
fs.h The purpose of this change to the FFS layout policy is to reduce the 2013-03-22 21:45:28 +00:00
softdep.h Restructuring of the soft updates code to set it up so that the 2013-10-21 00:28:02 +00:00