Computer Science
bdflush(8) bdflush(8)
NAME
bdflush - kernel daemon to flush dirty buffers back to
disk.
SYNOPSIS
bdflush [opt]
DESCRIPTION
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
return.
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
buffers.
The two daemons are normally started in /etc/rc with one
command:
/sbin/update
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...
COMMAND-LINE OPTIONS
-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
activated
-2 Num of clean buffers to be loaded onto free list by
refill_freelist
-3 Dirty block threshold for activating bdflush in
refill_freelist
-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
before flushing
-7 Time buffer cache load average constant
-8 LAV ratio (used to determine threshold for buffer
fratricide)
AUTHOR
bdflush was written as a quick hack by Eric Youngdale
<ericy@gnu.ai.mit.edu>. 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 <bostley@cs.colorado.edu> and Daniel Quinlan
<quinlan@yggdrasil.com>.
BUGS
If there are, they are most likely in the kernel code.
Aug 1994 1
Back to the index