bdflush - kernel daemon to flush dirty buffers back to
bdflush is used to start the kernel daemon to flush dirty
buffers back to disk. The actual dirty work is in a ker-
nel function, and bdflush actually forks a new process
which then calls the kernel function that will never
bdflush actually forks a second daemon as well, and this
one acts like a more traditional update process, except
that buffers are not considered ready to be written until
they have aged a bit. The clock starts when the buffer is
brelsed with the dirty bit set, and the buffer will not be
written back until an interval passes. The interval is
different for data buffers and for metadata buffers (like
directories, bitmaps, indirect blocks, etc), and the cur-
rent settings are displayed by bdflush when you run it
with arguments on the command line. The defaults are 30
seconds for data buffers and 5 seconds for metadata
The two daemons are normally started in /etc/rc with one
Note that you need to have both daemons running because
each one serves a different purpose. Note also that this
command should be run before any major I/O is performed.
In particular, update should be called before any filesys-
tems are fsck'ed or mounted read-write.
When bdflush is called by a user without superuser priv-
eledges, it calls flush() and sync() and then exits.
Mustn't have 20 update daemons running at a time...
-d Display kernel parameters. Using this option pre-
vents the daemon from starting.
-h Print the usage message (help).
-s If bdflush defaults to the old update behavior, call
sync this often. ( In seconds ) Default:30.
-f Call flush this often. ( In seconds ) Default:5.
-0 Max fraction of LRU list to examine for dirty blocks.
-1 Max number of dirty blocks to write each time bdflush
-2 Num of clean buffers to be loaded onto free list by
-3 Dirty block threshold for activating bdflush in
-4 Percentage of cache to scan for free clusters
-5 Time for data buffers to age before flushing
-6 Time for non-data (dir, bitmap, etc) buffers to age
-7 Time buffer cache load average constant
-8 LAV ratio (used to determine threshold for buffer
bdflush was written as a quick hack by Eric Youngdale
<email@example.com>. The main goal was to improve ker-
nel performance by making the flushing of dirty buffers
more intelligent, and add support for buffer clustering.
Feel free to improve it. Various other hacks by Phil
Bostley <firstname.lastname@example.org> and Daniel Quinlan
If there are, they are most likely in the kernel code.
Aug 1994 1