Re: Patch "oom: improve oom disable handling" has been added to the 4.9-stable tree

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

 



Greg, this doesn't really look like a fix that should go to the stable
tree. It doesn't really fix any serious bug.

On Thu 22-03-18 14:49:48, Greg KH wrote:
> >From foo@baz Thu Mar 22 14:40:24 CET 2018
> From: Michal Hocko <mhocko@xxxxxxxx>
> Date: Wed, 3 May 2017 14:54:57 -0700
> Subject: oom: improve oom disable handling
> 
> From: Michal Hocko <mhocko@xxxxxxxx>
> 
> 
> [ Upstream commit d75da004c708c9fca7b53f7da293a295522414d9 ]
> 
> Tetsuo has reported that sysrq triggered OOM killer will print a
> misleading information when no tasks are selected:
> 
>   sysrq: SysRq : Manual OOM execution
>   Out of memory: Kill process 4468 ((agetty)) score 0 or sacrifice child
>   Killed process 4468 ((agetty)) total-vm:43704kB, anon-rss:1760kB, file-rss:0kB, shmem-rss:0kB
>   sysrq: SysRq : Manual OOM execution
>   Out of memory: Kill process 4469 (systemd-cgroups) score 0 or sacrifice child
>   Killed process 4469 (systemd-cgroups) total-vm:10704kB, anon-rss:120kB, file-rss:0kB, shmem-rss:0kB
>   sysrq: SysRq : Manual OOM execution
>   sysrq: OOM request ignored because killer is disabled
>   sysrq: SysRq : Manual OOM execution
>   sysrq: OOM request ignored because killer is disabled
>   sysrq: SysRq : Manual OOM execution
>   sysrq: OOM request ignored because killer is disabled
> 
> The real reason is that there are no eligible tasks for the OOM killer
> to select but since commit 7c5f64f84483 ("mm: oom: deduplicate victim
> selection code for memcg and global oom") the semantic of out_of_memory
> has changed without updating moom_callback.
> 
> This patch updates moom_callback to tell that no task was eligible which
> is the case for both oom killer disabled and no eligible tasks.  In
> order to help distinguish first case from the second add printk to both
> oom_killer_{enable,disable}.  This information is useful on its own
> because it might help debugging potential memory allocation failures.
> 
> Fixes: 7c5f64f84483 ("mm: oom: deduplicate victim selection code for memcg and global oom")
> Link: http://lkml.kernel.org/r/20170404134705.6361-1-mhocko@xxxxxxxxxx
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
> Reported-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/tty/sysrq.c |    2 +-
>  mm/oom_kill.c       |    2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> --- a/drivers/tty/sysrq.c
> +++ b/drivers/tty/sysrq.c
> @@ -375,7 +375,7 @@ static void moom_callback(struct work_st
>  
>  	mutex_lock(&oom_lock);
>  	if (!out_of_memory(&oc))
> -		pr_info("OOM request ignored because killer is disabled\n");
> +		pr_info("OOM request ignored. No task eligible\n");
>  	mutex_unlock(&oom_lock);
>  }
>  
> --- a/mm/oom_kill.c
> +++ b/mm/oom_kill.c
> @@ -706,6 +706,7 @@ void exit_oom_victim(void)
>  void oom_killer_enable(void)
>  {
>  	oom_killer_disabled = false;
> +	pr_info("OOM killer enabled.\n");
>  }
>  
>  /**
> @@ -742,6 +743,7 @@ bool oom_killer_disable(signed long time
>  		oom_killer_enable();
>  		return false;
>  	}
> +	pr_info("OOM killer disabled.\n");
>  
>  	return true;
>  }
> 
> 
> Patches currently in stable-queue which might be from mhocko@xxxxxxxx are
> 
> queue-4.9/mm-fix-check-for-reclaimable-pages-in-pf_memalloc-reclaim-throttling.patch
> queue-4.9/oom-improve-oom-disable-handling.patch

-- 
Michal Hocko
SUSE Labs



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]