On Tue, 21 Jun 2016, Ganesh Mahendran wrote: > lowmem_count() should only count anon pages when we have swap device. > Why? > Signed-off-by: Ganesh Mahendran <opensource.ganesh@xxxxxxxxx> > --- > drivers/staging/android/lowmemorykiller.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c > index 6da9260..1d8de47 100644 > --- a/drivers/staging/android/lowmemorykiller.c > +++ b/drivers/staging/android/lowmemorykiller.c > @@ -73,10 +73,14 @@ static unsigned long lowmem_deathpending_timeout; > static unsigned long lowmem_count(struct shrinker *s, > struct shrink_control *sc) > { > - return global_page_state(NR_ACTIVE_ANON) + > - global_page_state(NR_ACTIVE_FILE) + > - global_page_state(NR_INACTIVE_ANON) + > - global_page_state(NR_INACTIVE_FILE); > + unsigned long freeable = global_page_state(NR_ACTIVE_FILE) + > + global_page_state(NR_INACTIVE_FILE); > + > + if (get_nr_swap_pages() > 0) > + freeable += global_page_state(NR_ACTIVE_ANON) + > + global_page_state(NR_INACTIVE_ANON); > + > + return freeable; > } > > static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) Shouldn't this be advertising the amount of memory that is freeable by killing the process with the highest priority oom_score_adj? It's not legitimate to say it can free all anon and file memory if nothing is oom killable, so this function is wrong both originally and with your patched version. _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel