Re: [PATCH] improve lmk to avoid deadlock issue

From: Joe Perches
Date: Thu Jul 30 2015 - 08:29:24 EST


On Thu, 2015-07-30 at 13:09 +0300, Dan Carpenter wrote:
> > diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c
[]
> > @@ -127,11 +127,15 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc)
> > if (!p)
> > continue;
> >
> > - if (test_tsk_thread_flag(p, TIF_MEMDIE) &&
> > - time_before_eq(jiffies, lowmem_deathpending_timeout)) {
> > - task_unlock(p);
> > - rcu_read_unlock();
> > - return 0;
> > + if (test_tsk_thread_flag(p, TIF_MEMDIE)) {
> > + if (time_before_eq(jiffies, lowmem_deathpending_timeout)) {
>
> 5) This goes over the 80 character limit. Could you break it up like
> this:
>
> if (test_tsk_thread_flag(p, TIF_MEMDIE)) {
> if (time_before_eq(jiffies,
> lowmem_deathpending_timeout)) {
> task_unlock(p);
>
> Anyway, thank for this patch. Please fix these small process issues
> and resend.

Can the task_unlock in each branch be hoisted?

Another way to write this might be to use time_after:

if (test_tsk_thread_flag(p, TIF_MEMDIE)) {
task_unlock(p);
if (time_after(jiffies, lowmem_deathpending_timeout))
continue;
rcu_read_unlock();
return 0;
}


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/