diff options
author | Sonny Rao <sonnyrao@chromium.org> | 2012-12-21 00:05:07 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-21 02:40:18 +0100 |
commit | c8b74c2f6604923de91f8aa6539f8bb934736754 (patch) | |
tree | 2aa7cefdda54d71d6a8b9387914fb475514a1bd0 /block | |
parent | compaction: fix build error in CMA && !COMPACTION (diff) | |
download | linux-c8b74c2f6604923de91f8aa6539f8bb934736754.tar.xz linux-c8b74c2f6604923de91f8aa6539f8bb934736754.zip |
mm: fix calculation of dirtyable memory
The system uses global_dirtyable_memory() to calculate number of
dirtyable pages/pages that can be allocated to the page cache. A bug
causes an underflow thus making the page count look like a big unsigned
number. This in turn confuses the dirty writeback throttling to
aggressively write back pages as they become dirty (usually 1 page at a
time). This generally only affects systems with highmem because the
underflowed count gets subtracted from the global count of dirtyable
memory.
The problem was introduced with v3.2-4896-gab8fabd
Fix is to ensure we don't get an underflowed total of either highmem or
global dirtyable memory.
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Signed-off-by: Puneet Kumar <puneetster@chromium.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Tested-by: Damien Wyart <damien.wyart@free.fr>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions