diff options
| author | Marcelo Tosatti <marcelo.tosatti@cyclades.com> | 2005-03-07 17:25:19 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-03-07 17:25:19 -0800 |
| commit | 26eecbf3543b7a57699ce5b0bed82b84d3b61705 (patch) | |
| tree | 67e50fe39eaf4347c9d24c8ef638f4d06fb7f707 /include/linux/writeback.h | |
| parent | cf90416303a8720cab80d4664a910922431af8c0 (diff) | |
[PATCH] vm: pageout throttling
With silly pageout testcases it is possible to place huge amounts of memory
under I/O. With a large request queue (CFQ uses 8192 requests) it is
possible to place _all_ memory under I/O at the same time.
This means that all memory is pinned and unreclaimable and the VM gets
upset and goes oom.
The patch limits the amount of memory which is under pageout writeout to be
a little more than the amount of memory at which balance_dirty_pages()
callers will synchronously throttle.
This means that heavy pageout activity can starve heavy writeback activity
completely, but heavy writeback activity will not cause starvation of
pageout. Because we don't want a simple `dd' to be causing excessive
latencies in page reclaim.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/writeback.h')
| -rw-r--r-- | include/linux/writeback.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 4ab519ad9f55..1262cb43c3ab 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -86,6 +86,7 @@ static inline void wait_on_inode(struct inode *inode) int wakeup_bdflush(long nr_pages); void laptop_io_completion(void); void laptop_sync_completion(void); +void throttle_vm_writeout(void); /* These are exported to sysctl. */ extern int dirty_background_ratio; |
