freebsd-skq/sys/ufs/ffs
Kirk McKusick baa12a84a7 The purpose of this change to the FFS layout policy is to reduce the
running time for a full fsck. It also reduces the random access time
for large files and speeds the traversal time for directory tree walks.

The key idea is to reserve a small area in each cylinder group
immediately following the inode blocks for the use of metadata,
specifically indirect blocks and directory contents. The new policy
is to preferentially place metadata in the metadata area and
everything else in the blocks that follow the metadata area.

The size of this area can be set when creating a filesystem using
newfs(8) or changed in an existing filesystem using tunefs(8).
Both utilities use the `-k held-for-metadata-blocks' option to
specify the amount of space to be held for metadata blocks in each
cylinder group. By default, newfs(8) sets this area to half of
minfree (typically 4% of the data area).

This work was inspired by a paper presented at Usenix's FAST '13:
www.usenix.org/conference/fast13/ffsck-fast-file-system-checker

Details of this implementation appears in the April 2013 of ;login:
www.usenix.org/publications/login/april-2013-volume-38-number-2.
A copy of the April 2013 ;login: paper can also be downloaded
from: www.mckusick.com/publications/faster_fsck.pdf.

Reviewed by: kib
Tested by:   Peter Holm
MFC after:   4 weeks
2013-03-22 21:45:28 +00:00
..
ffs_alloc.c The purpose of this change to the FFS layout policy is to reduce the 2013-03-22 21:45:28 +00:00
ffs_balloc.c The purpose of this change to the FFS layout policy is to reduce the 2013-03-22 21:45:28 +00:00
ffs_extern.h Add UFS writesuspension mechanism, designed to allow userland processes 2012-11-18 18:57:19 +00:00
ffs_inode.c For UFS2 i_blocks is unsigned. The current "sanity" check that it 2013-02-03 17:16:32 +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 Add flags argument to vfs_write_resume() and remove 2013-01-11 06:08:32 +00:00
ffs_softdep.c The softdep freeblks workitem might hold a reference on the dquot. 2013-02-27 07:32:39 +00:00
ffs_subr.c - Merge soft-updates journaling from projects/suj/head into head. This 2010-04-24 07:05:35 +00:00
ffs_suspend.c Add flags argument to vfs_write_resume() and remove 2013-01-11 06:08:32 +00:00
ffs_tables.c
ffs_vfsops.c UFS support of the unmapped i/o for the user data buffers. 2013-03-19 15:08:15 +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 - Speed up pendingblock processing again. Having too much delay between 2011-07-04 22:08:04 +00:00