]> git.karo-electronics.de Git - karo-tx-linux.git/commit
writeback: charge leaked page dirties to active tasks
authorWu Fengguang <fengguang.wu@intel.com>
Tue, 5 Apr 2011 19:21:19 +0000 (13:21 -0600)
committerWu Fengguang <fengguang.wu@intel.com>
Mon, 5 Dec 2011 06:06:30 +0000 (14:06 +0800)
commit17e6a2367f485c30c9a3ca557d4538bff4cd682b
treeacc2026394f4bb61deafa3c9b2119c3b20905928
parent8006fcff7c3a7bcb5f5adb75fe892ff3ff086711
writeback: charge leaked page dirties to active tasks

It's a years long problem that a large number of short-lived dirtiers
(eg. gcc instances in a fast kernel build) may starve long-run dirtiers
(eg. dd) as well as pushing the dirty pages to the global hard limit.

The solution is to charge the pages dirtied by the exited gcc to the
other random dirtying tasks. It sounds not perfect, however should
behave good enough in practice, seeing as that throttled tasks aren't
actually running so those that are running are more likely to pick it up
and get throttled, therefore promoting an equal spread.

Randy: fix compile error: 'dirty_throttle_leaks' undeclared in exit.c

Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
include/linux/writeback.h
kernel/exit.c
mm/page-writeback.c