PATCH: Forcible delaying of UFS (soft)updates

Marko Zec zec at tel.fer.hr
Tue Apr 15 12:12:01 PDT 2003


David Schultz wrote:

>   For instance, you could
>   have fsync() push the appropriate dirty buffers out to a separate
>   cache, then commit the contents of the cache in the order of the
>   fsyncs when the disk is next active.

Huh... such a concept would still break fsync() semantics. Note that the
original patch also ensures dirty buffers get flushed if / when the disk spins
up, even before the delay timer gets expired.

> - The fiddling with rushjob seems rather arbitrary.  You can probably
>   just let the existing code increment it as necessary and force a sync
>   if the value gets too high.

If rushjob is would not be used for forcing prompt synching, the original code
could not guarantee the sync to occur immediately. Instead, the synching could
be further delayed for up to 30 seconds, which is not desirable if our major
design goal is to do as much disk I/O as possible in a small time interval and
leave the disk idle otherwise.

Marko




More information about the freebsd-fs mailing list