Re: [PATCH] improve lmk to avoid deadlock issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm not an android dev but this patch seems reasonable enough.  There
are some process issues though.

1) The subject should have a subsystem prefix:

[PATCH] Staing: android: lowmemorykiller: improve lmk to avoid deadlock issue


On Thu, Jul 30, 2015 at 06:49:53AM +0000, Wang, Biao wrote:
> From: "wang, biao" <biao.wang@xxxxxxxxx>
> Date: Thu, 30 Jul 2015 14:14:44 +0800
> Subject: [PATCH] improve lmk to avoid deadlock issue

2)  Don't put these lines in the patch.

> 
> Consider the following case:
> Task A trigger lmk with a lock held, while process B try to
> get this lock, but unfortunately B is the very culprit Task lmk select to
> kill.
> So B will never be killed, and A will forever select B to kill and
> such dead lock trigger softlock up issue.
> This patch try to pick the next task to break this loop.
> 
> Signed-off-by: wang, biao <biao.wang@xxxxxxxxx>

3) Use capital letters for your name here.  It should match your email
address.

> Signed-off-by: Zhang Di <di.zhang@xxxxxxxxx>

4) Did Zhang write this patch?  If so then add a From: tag at the top
of the email to give authorship credit.  Signed-off-by tags mean that
the patch went through your hands somehow.  Otherwise use the
Reviewed-by, Reported-by, or Acked-by tag whichever is appropriate.

> ---
>  drivers/staging/android/lowmemorykiller.c |   14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c
> index feafa17..efabeb7 100644
> --- 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.

regards,
dan carpenter

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux