]> git.neil.brown.name Git - history.git/commit
[PATCH] pdflush exclusion
authorAndrew Morton <akpm@zip.com.au>
Sun, 19 May 2002 09:22:12 +0000 (02:22 -0700)
committerArnaldo Carvalho de Melo <acme@conectiva.com.br>
Sun, 19 May 2002 09:22:12 +0000 (02:22 -0700)
commit17a74e8800eb0f00a74b9c1d269483e4f9f22bc8
tree23d64638546b1f72a0143ca67509d05f3c731755
parent1f6acea0de867d7f5e5a43ba43cf3be744da412c
[PATCH] pdflush exclusion

Use the pdflush exclusion infrastructure to ensure that only one
pdlfush thread is ever performing writeback against a particular
request_queue.

This works rather well.  It requires a lot of activity against a lot of
disks to cause more pdflush threads to start up.  Possibly the
thread-creation logic is a little weak: it starts more threads when a
pdflush thread goes back to sleep.  It may be better to start new
threads within pdlfush_operation().

All non-request_queue-backed address_spaces share the global
default_backing_dev_info structure.  So at present only a single
pdflush instance will be available for background writeback of *all*
NFS filesystems (for example).

If there is benefit in concurrent background writeback for multiple NFS
mounts then NFS would need to create per-mount backing_dev_info
structures and install those into new inode's address_spaces in some
manner.
fs/fs-writeback.c
fs/inode.c
include/linux/fs.h
include/linux/writeback.h
mm/page-writeback.c