lowmemorykiller: account for unevictable pages

lowmemorykiller was not taking into account unevictable pages when
deciding what level to kill. If significant amounts of memory were
pinned, this caused lowmemorykiller to effectively stop at a much higher
level than it should.

bug 31255977

Change-Id: I763ecbfef8c56d65bb8f6147ae810692bd81b6e2
This commit is contained in:
Tim Murray 2016-09-02 16:04:41 -07:00 committed by syphyr
parent 862f4f71e0
commit 9697139d52
1 changed files with 1 additions and 0 deletions

View File

@ -83,6 +83,7 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc)
int other_free = global_page_state(NR_FREE_PAGES) - totalreserve_pages;
int other_file = global_page_state(NR_FILE_PAGES) -
global_page_state(NR_SHMEM) -
global_page_state(NR_UNEVICTABLE) -
total_swapcache_pages();
if (lowmem_adj_size < array_size)