All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan.kim@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Rientjes <rientjes@google.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [PATCH 4/9] oom: oom_kill_process() need to check p is unkillable
Date: Thu, 17 Jun 2010 00:07:28 +0900	[thread overview]
Message-ID: <20100616150728.GD9278@barrios-desktop> (raw)
In-Reply-To: <20100616203212.72E0.A69D9226@jp.fujitsu.com>

On Wed, Jun 16, 2010 at 08:32:45PM +0900, KOSAKI Motohiro wrote:
> When oom_kill_allocating_task is enabled, an argument of
> oom_kill_process is not selected by select_bad_process(), but
> just out_of_memory() caller task. It mean the task can be
> unkillable. check it first.
> 
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> ---
>  mm/oom_kill.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/mm/oom_kill.c b/mm/oom_kill.c
> index 6ca6cb8..3e48023 100644
> --- a/mm/oom_kill.c
> +++ b/mm/oom_kill.c
> @@ -436,6 +436,17 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
>  	unsigned long victim_points = 0;
>  	struct timespec uptime;
>  
> +	/*
> +	 * When oom_kill_allocating_task is enabled, p can be
> +	 * unkillable. check it first.
> +	 */
> +	if (is_global_init(p) || (p->flags & PF_KTHREAD))
> +		return 1;
> +	if (mem && !task_in_mem_cgroup(p, mem))
> +		return 1;
> +	if (!has_intersects_mems_allowed(p, nodemask))
> +		return 1;
> +

I think this check could be done before oom_kill_proces in case of
sysctl_oom_kill_allocating_task, too. 

-- 
Kind regards,
Minchan Kim

WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan.kim@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Rientjes <rientjes@google.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [PATCH 4/9] oom: oom_kill_process() need to check p is unkillable
Date: Thu, 17 Jun 2010 00:07:28 +0900	[thread overview]
Message-ID: <20100616150728.GD9278@barrios-desktop> (raw)
In-Reply-To: <20100616203212.72E0.A69D9226@jp.fujitsu.com>

On Wed, Jun 16, 2010 at 08:32:45PM +0900, KOSAKI Motohiro wrote:
> When oom_kill_allocating_task is enabled, an argument of
> oom_kill_process is not selected by select_bad_process(), but
> just out_of_memory() caller task. It mean the task can be
> unkillable. check it first.
> 
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> ---
>  mm/oom_kill.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/mm/oom_kill.c b/mm/oom_kill.c
> index 6ca6cb8..3e48023 100644
> --- a/mm/oom_kill.c
> +++ b/mm/oom_kill.c
> @@ -436,6 +436,17 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
>  	unsigned long victim_points = 0;
>  	struct timespec uptime;
>  
> +	/*
> +	 * When oom_kill_allocating_task is enabled, p can be
> +	 * unkillable. check it first.
> +	 */
> +	if (is_global_init(p) || (p->flags & PF_KTHREAD))
> +		return 1;
> +	if (mem && !task_in_mem_cgroup(p, mem))
> +		return 1;
> +	if (!has_intersects_mems_allowed(p, nodemask))
> +		return 1;
> +

I think this check could be done before oom_kill_proces in case of
sysctl_oom_kill_allocating_task, too. 

-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-06-16 15:08 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-16 11:29 [PATCH 1/9] oom: don't try to kill oom_unkillable child KOSAKI Motohiro
2010-06-16 11:29 ` KOSAKI Motohiro
2010-06-16 11:31 ` [PATCH 2/9] oom: rename badness() to oom_badness() KOSAKI Motohiro
2010-06-16 11:31   ` KOSAKI Motohiro
2010-06-16 14:46   ` Minchan Kim
2010-06-16 14:46     ` Minchan Kim
2010-06-16 21:40   ` David Rientjes
2010-06-16 21:40     ` David Rientjes
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 11:32 ` [PATCH 3/9] oom: oom_kill_process() doesn't select kthread child KOSAKI Motohiro
2010-06-16 11:32   ` KOSAKI Motohiro
2010-06-16 15:02   ` Minchan Kim
2010-06-16 15:02     ` Minchan Kim
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 11:32 ` [PATCH 4/9] oom: oom_kill_process() need to check p is unkillable KOSAKI Motohiro
2010-06-16 11:32   ` KOSAKI Motohiro
2010-06-16 15:07   ` Minchan Kim [this message]
2010-06-16 15:07     ` Minchan Kim
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 11:33 ` [PATCH 5/9] oom: make oom_unkillable_task() helper function KOSAKI Motohiro
2010-06-16 11:33   ` KOSAKI Motohiro
2010-06-16 15:10   ` Minchan Kim
2010-06-16 15:10     ` Minchan Kim
2010-06-16 11:34 ` [PATCH 6/9] oom: use same_thread_group instead comparing ->mm KOSAKI Motohiro
2010-06-16 11:34   ` KOSAKI Motohiro
2010-06-16 12:24   ` Oleg Nesterov
2010-06-16 12:24     ` Oleg Nesterov
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 15:15   ` Minchan Kim
2010-06-16 15:15     ` Minchan Kim
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 11:34 ` [PATCH 7/9] oom: unify CAP_SYS_RAWIO check into other superuser check KOSAKI Motohiro
2010-06-16 11:34   ` KOSAKI Motohiro
2010-06-16 11:35 ` [PATCH 8/9] oom: cleanup has_intersects_mems_allowed() KOSAKI Motohiro
2010-06-16 11:35   ` KOSAKI Motohiro
2010-06-16 15:22   ` Minchan Kim
2010-06-16 15:22     ` Minchan Kim
2010-06-16 11:36 ` [PATCH 9/9] oom: give the dying task a higher priority KOSAKI Motohiro
2010-06-16 11:36   ` KOSAKI Motohiro
2010-06-16 15:31   ` Minchan Kim
2010-06-16 15:31     ` Minchan Kim
2010-06-16 19:54     ` Luis Claudio R. Goncalves
2010-06-16 19:54       ` Luis Claudio R. Goncalves
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-17  1:51         ` KOSAKI Motohiro
2010-06-17  1:51     ` KOSAKI Motohiro
2010-06-17  1:51       ` KOSAKI Motohiro
2010-06-16 14:41 ` [PATCH 1/9] oom: don't try to kill oom_unkillable child Minchan Kim
2010-06-16 14:41   ` Minchan Kim
2010-06-17  1:51   ` KOSAKI Motohiro
2010-06-17  1:51     ` KOSAKI Motohiro
  -- strict thread matches above, loose matches on Subject: below --
2010-06-17  1:45 KOSAKI Motohiro
2010-06-17  1:51 ` [PATCH 4/9] oom: oom_kill_process() need to check p is unkillable KOSAKI Motohiro
2010-06-17  1:51   ` KOSAKI Motohiro
2010-06-17  4:19   ` David Rientjes
2010-06-17  4:19     ` David Rientjes
2010-06-21 11:45     ` KOSAKI Motohiro
2010-06-21 11:45       ` KOSAKI Motohiro
2010-06-21 14:00       ` Minchan Kim
2010-06-21 14:00         ` Minchan Kim
2010-06-21 20:04       ` David Rientjes
2010-06-21 20:04         ` David Rientjes
2010-06-30  9:26         ` KOSAKI Motohiro
2010-06-30  9:26           ` KOSAKI Motohiro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100616150728.GD9278@barrios-desktop \
    --to=minchan.kim@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.