SoftUpdates's softdep_mount: Why do we need to recompute the superblock summary when bgfsck is there?

Xin LI delphij at
Sat Feb 12 08:00:37 PST 2005


When a FFS is SoftUpdates enabled and was incorrectly dismounted,
the mount process will recompute the superblock summary
(fs->fs_cstotal) by traversing every cylinder group and accumulate
the summary.

While this approach will guarantee the correctness of the summary,
it can lead to a painful latency of mount() when the volume is
very big.  With background fsck, I think this can be splited off
the softdep_mount() call with the following background fsck process:

	- When mounting the file system, and when we know that
	  background fsck *would* be run, we skip the recomputation
	  process.  (recompute only if no background fsck can be
	  run, or is explicitly specified)
	- During pass5 of fsck_ffs, the newly generated cstotal is
	  then computed as deltas against the original snapshot's
	  summary.  Then, apply the delta to the current number.
	- Maintain the superblock summary by sync'ing it
	  periodically, so it won't lag behind too much upon
	  a crash.

Would this improve the situation?

Xin LI <delphij frontfree net>
See complete headers for GPG key and other information.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-fs mailing list