summaryrefslogtreecommitdiff
path: root/include/linux/writeback.h
diff options
context:
space:
mode:
authorMarcelo Tosatti <marcelo.tosatti@cyclades.com>2005-03-07 17:25:19 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-03-07 17:25:19 -0800
commit26eecbf3543b7a57699ce5b0bed82b84d3b61705 (patch)
tree67e50fe39eaf4347c9d24c8ef638f4d06fb7f707 /include/linux/writeback.h
parentcf90416303a8720cab80d4664a910922431af8c0 (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.h1
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;