2014-02-26 18:10:53

by vinayak menon

[permalink] [raw]
Subject: [PATCH] staging: android: lowmemorykiller: neglect swap cached pages in other_file

From: Vinayak Menon <[email protected]>

With ZRAM enabled it is observed that lowmemory killer
doesn't trigger properly. swap cached pages are
accounted in NR_FILE, and lowmemorykiller considers
this as reclaimable and adds to other_file. But these
pages can't be reclaimed unless lowmemorykiller triggers.
So subtract swap pages from other_file.

Signed-off-by: Vinayak Menon <[email protected]>
---
drivers/staging/android/lowmemorykiller.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c
index 6f094b3..92b1c93 100644
--- a/drivers/staging/android/lowmemorykiller.c
+++ b/drivers/staging/android/lowmemorykiller.c
@@ -88,7 +88,8 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc)
int array_size = ARRAY_SIZE(lowmem_adj);
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_SHMEM)
+ total_swapcache_pages();

if (lowmem_adj_size < array_size)
array_size = lowmem_adj_size;
--
1.7.6


2014-02-26 18:25:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] staging: android: lowmemorykiller: neglect swap cached pages in other_file

On Wed, Feb 26, 2014 at 11:40:33PM +0530, [email protected] wrote:
> From: Vinayak Menon <[email protected]>
>
> With ZRAM enabled it is observed that lowmemory killer
> doesn't trigger properly. swap cached pages are
> accounted in NR_FILE, and lowmemorykiller considers
> this as reclaimable and adds to other_file. But these
> pages can't be reclaimed unless lowmemorykiller triggers.
> So subtract swap pages from other_file.
>
> Signed-off-by: Vinayak Menon <[email protected]>
> ---
> drivers/staging/android/lowmemorykiller.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)

You sent 2 patches, both different, which should I apply?

How about I delete both and wait for a proper "v3" that specifies
exactly what is going on here...