On Mon, Aug 19, 2013 at 7:23 PM, Colin Cross <ccross@xxxxxxxxxxx> wrote: > On Mon, Aug 19, 2013 at 6:16 PM, Leon Ma <xindong.ma@xxxxxxxxx> wrote: >> From: Leon Ma <xindong.ma@xxxxxxxxx> >> Date: Mon, 19 Aug 2013 14:22:38 +0800 >> Subject: [PATCH] LMK: Optimize lowmem_shrink. >> >> By comparing with selected_oom_score_adj instead of min_score_adj, >> we may do less calculation. >> >> Signed-off-by: Leon Ma <xindong.ma@xxxxxxxxx> >> --- >> drivers/staging/android/lowmemorykiller.c | 12 ++++-------- >> 1 files changed, 4 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/staging/android/lowmemorykiller.c >> b/drivers/staging/android/lowmemorykiller.c >> index f6c05c9..cb944c5 100644 >> --- a/drivers/staging/android/lowmemorykiller.c >> +++ b/drivers/staging/android/lowmemorykiller.c >> @@ -126,7 +126,7 @@ static int lowmem_shrink(struct shrinker *s, struct >> shrink_control *sc) >> return 0; >> } >> oom_score_adj = p->signal->oom_score_adj; >> - if (oom_score_adj < min_score_adj) { >> + if (oom_score_adj < selected_oom_score_adj) { > > This needs to be oom_score_adj <= selected_oom_score_adj. Sorry, got the logic inverted, yours is correct. >> task_unlock(p); >> continue; >> } >> @@ -134,13 +134,9 @@ static int lowmem_shrink(struct shrinker *s, struct >> shrink_control *sc) >> task_unlock(p); >> if (tasksize <= 0) >> continue; >> - if (selected) { >> - if (oom_score_adj < selected_oom_score_adj) >> - continue; >> - if (oom_score_adj == selected_oom_score_adj && >> - tasksize <= selected_tasksize) >> - continue; >> - } >> + if (selected && oom_score_adj == selected_oom_score_adj && >> + tasksize <= selected_tasksize) >> + continue; >> selected = p; >> selected_tasksize = tasksize; >> selected_oom_score_adj = oom_score_adj; >> -- >> 1.7.4.1 >> >> >> _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel