Revision bbdb396a60b2ebf7de3b717991e5d3e28c8b7bbd authored by Martin Bligh on 28 October 2006, 17:38:25 UTC, committed by Linus Torvalds on 28 October 2006, 18:30:51 UTC
If try_to_free_pages / balance_pgdat are called with a gfp_mask specifying GFP_IO and/or GFP_FS, they will reclaim the requisite number of pages, and the reset prev_priority to DEF_PRIORITY (or to some other high (ie: unurgent) value). However, another reclaimer without those gfp_mask flags set (say, GFP_NOIO) may still be struggling to reclaim pages. The concurrent overwrite of zone->prev_priority will cause this GFP_NOIO thread to unexpectedly cease deactivating mapped pages, thus causing reclaim difficulties. Fix this is to key the distress calculation not off zone->prev_priority, but also take into account the local caller's priority by using min(zone->prev_priority, sc->priority) Signed-off-by: Martin J. Bligh <mbligh@google.com> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent 3bb1a85
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 1.7 KB |
Kconfig.iosched | -rw-r--r-- | 1.9 KB |
Makefile | -rw-r--r-- | 347 bytes |
as-iosched.c | -rw-r--r-- | 37.9 KB |
blktrace.c | -rw-r--r-- | 11.9 KB |
cfq-iosched.c | -rw-r--r-- | 51.1 KB |
deadline-iosched.c | -rw-r--r-- | 11.6 KB |
elevator.c | -rw-r--r-- | 24.4 KB |
genhd.c | -rw-r--r-- | 16.7 KB |
ioctl.c | -rw-r--r-- | 7.4 KB |
ll_rw_blk.c | -rw-r--r-- | 99.2 KB |
noop-iosched.c | -rw-r--r-- | 2.6 KB |
scsi_ioctl.c | -rw-r--r-- | 16.4 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...