All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.cz>, Oleg Nesterov <oleg@redhat.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: [PATCH] oom: skip frozen tasks
Date: Fri, 26 Aug 2011 11:35:01 +0400	[thread overview]
Message-ID: <4E574CA5.4010701@openvz.org> (raw)
In-Reply-To: <alpine.DEB.2.00.1108251404130.18747@chino.kir.corp.google.com>

David Rientjes wrote:
> On Thu, 25 Aug 2011, Michal Hocko wrote:
>
>>>>> That's obviously false since we call oom_killer_disable() in
>>>>> freeze_processes() to disable the oom killer from ever being called in the
>>>>> first place, so this is something you need to resolve with Rafael before
>>>>> you cause more machines to panic.
>>>>
>>>> I didn't mean suspend/resume path (that is protected by oom_killer_disabled)
>>>> so the patch doesn't make any change.
>>>
>>> Confused... freeze_processes() does try_to_freeze_tasks() before
>>> oom_killer_disable() ?
>>
>> Yes you are right, I must have been blind.
>>
>> Now I see the point. We do not want to panic while we are suspending and
>> the memory is really low just because all the userspace is already in
>> the the fridge.
>> Sorry for confusion.
>>
>> I still do not follow the oom_killer_disable note from David, though.
>>
>
> oom_killer_disable() was added to that path for a reason when all threads
> are frozen: memory allocations still occur in the suspend path in an oom
> condition and adding the oom_killer_disable() will cause those
> allocations to fail rather than sending pointless SIGKILLs to frozen
> threads.
>
> Now consider if the only _eligible_ threads for oom kill (because of
> cpusets or mempolicies) are those that are frozen.  We certainly do not
> want to panic because other cpusets are still getting work done.  We'd
> either want to add a mem to the cpuset or thaw the processes because the
> cpuset is oom.
>
> You can't just selectively skip certain threads when their state can be
> temporary without risking a panic.  That's why this patch is a
> non-starter.
>
> A much better solution would be to lower the badness score that the oom
> killer uses for PF_FROZEN threads so that they aren't considered a
> priority for kill unless there's nothing else left to kill.

Anyway, oom killer shouldn't loop endlessly if it see TIF_MEMDIE on frozen task,
it must go on and try to kill somebody else. We cannot wait for thawing this task.

WARNING: multiple messages have this Message-ID (diff)
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.cz>, Oleg Nesterov <oleg@redhat.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: [PATCH] oom: skip frozen tasks
Date: Fri, 26 Aug 2011 11:35:01 +0400	[thread overview]
Message-ID: <4E574CA5.4010701@openvz.org> (raw)
In-Reply-To: <alpine.DEB.2.00.1108251404130.18747@chino.kir.corp.google.com>

David Rientjes wrote:
> On Thu, 25 Aug 2011, Michal Hocko wrote:
>
>>>>> That's obviously false since we call oom_killer_disable() in
>>>>> freeze_processes() to disable the oom killer from ever being called in the
>>>>> first place, so this is something you need to resolve with Rafael before
>>>>> you cause more machines to panic.
>>>>
>>>> I didn't mean suspend/resume path (that is protected by oom_killer_disabled)
>>>> so the patch doesn't make any change.
>>>
>>> Confused... freeze_processes() does try_to_freeze_tasks() before
>>> oom_killer_disable() ?
>>
>> Yes you are right, I must have been blind.
>>
>> Now I see the point. We do not want to panic while we are suspending and
>> the memory is really low just because all the userspace is already in
>> the the fridge.
>> Sorry for confusion.
>>
>> I still do not follow the oom_killer_disable note from David, though.
>>
>
> oom_killer_disable() was added to that path for a reason when all threads
> are frozen: memory allocations still occur in the suspend path in an oom
> condition and adding the oom_killer_disable() will cause those
> allocations to fail rather than sending pointless SIGKILLs to frozen
> threads.
>
> Now consider if the only _eligible_ threads for oom kill (because of
> cpusets or mempolicies) are those that are frozen.  We certainly do not
> want to panic because other cpusets are still getting work done.  We'd
> either want to add a mem to the cpuset or thaw the processes because the
> cpuset is oom.
>
> You can't just selectively skip certain threads when their state can be
> temporary without risking a panic.  That's why this patch is a
> non-starter.
>
> A much better solution would be to lower the badness score that the oom
> killer uses for PF_FROZEN threads so that they aren't considered a
> priority for kill unless there's nothing else left to kill.

Anyway, oom killer shouldn't loop endlessly if it see TIF_MEMDIE on frozen task,
it must go on and try to kill somebody else. We cannot wait for thawing this task.

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2011-08-26  7:35 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-23  8:31 [PATCH] oom: skip frozen tasks Konstantin Khlebnikov
2011-08-23  8:31 ` Konstantin Khlebnikov
2011-08-23  9:15 ` KAMEZAWA Hiroyuki
2011-08-23  9:15   ` KAMEZAWA Hiroyuki
2011-08-23 13:46 ` Michal Hocko
2011-08-23 13:46   ` Michal Hocko
2011-08-23 20:18 ` David Rientjes
2011-08-23 20:18   ` David Rientjes
2011-08-24 10:19   ` Michal Hocko
2011-08-24 10:19     ` Michal Hocko
2011-08-24 19:31     ` David Rientjes
2011-08-24 19:31       ` David Rientjes
2011-08-25  9:19       ` Michal Hocko
2011-08-25  9:19         ` Michal Hocko
2011-08-25 15:18         ` Oleg Nesterov
2011-08-25 15:18           ` Oleg Nesterov
2011-08-25 16:47           ` Michal Hocko
2011-08-25 16:47             ` Michal Hocko
2011-08-25 21:14             ` David Rientjes
2011-08-25 21:14               ` David Rientjes
2011-08-26  7:09               ` Michal Hocko
2011-08-26  7:09                 ` Michal Hocko
2011-08-26  8:56                 ` Michal Hocko
2011-08-26  8:56                   ` Michal Hocko
2011-08-26  9:21                   ` David Rientjes
2011-08-26  9:21                     ` David Rientjes
2011-08-26  9:53                     ` Michal Hocko
2011-08-26  9:53                       ` Michal Hocko
2011-08-26 11:01                       ` Michal Hocko
2011-08-26 11:01                         ` Michal Hocko
2011-08-26 18:13                       ` David Rientjes
2011-08-26 18:13                         ` David Rientjes
2011-09-26  8:28                         ` [PATCH 1/2] oom: do not live lock on " Michal Hocko
2011-09-26  8:28                           ` Michal Hocko
2011-09-26  8:56                           ` David Rientjes
2011-09-26  8:56                             ` David Rientjes
2011-09-26  9:14                             ` Michal Hocko
2011-09-26  9:14                               ` Michal Hocko
2011-09-26  9:25                               ` KAMEZAWA Hiroyuki
2011-09-26  9:25                                 ` KAMEZAWA Hiroyuki
2011-09-26  9:32                                 ` Michal Hocko
2011-09-26  9:32                                   ` Michal Hocko
2011-09-26 15:51                               ` Rafael J. Wysocki
2011-09-26 15:51                                 ` Rafael J. Wysocki
2011-09-26 18:28                                 ` Michal Hocko
2011-09-26 18:28                                   ` Michal Hocko
2011-09-27  1:03                                 ` David Rientjes
2011-09-27  1:03                                   ` David Rientjes
2011-09-27  7:52                                   ` Michal Hocko
2011-09-27  7:52                                     ` Michal Hocko
2011-09-27 18:30                                     ` David Rientjes
2011-09-27 18:30                                       ` David Rientjes
2011-09-26 10:28                           ` Rusty Russell
2011-09-26 10:28                             ` Rusty Russell
2011-09-26 11:05                             ` Michal Hocko
2011-09-26 11:05                               ` Michal Hocko
2011-09-27  2:21                               ` Rusty Russell
2011-09-27  2:21                                 ` Rusty Russell
2011-09-27  7:03                                 ` [PATCH] lguest: move process freezing before pending signals check Michal Hocko
2011-09-27  7:03                                   ` Michal Hocko
2011-09-26  8:35                         ` [PATCH 2/2] oom: give bonus to frozen processes Michal Hocko
2011-09-26  8:35                           ` Michal Hocko
2011-09-26  9:02                           ` David Rientjes
2011-09-26  9:02                             ` David Rientjes
2011-09-26  9:31                             ` KAMEZAWA Hiroyuki
2011-09-26  9:31                               ` KAMEZAWA Hiroyuki
2011-09-26  9:54                               ` Michal Hocko
2011-09-26  9:54                                 ` Michal Hocko
2011-08-26 21:03                     ` [PATCH] oom: skip frozen tasks Rafael J. Wysocki
2011-08-26 21:03                       ` Rafael J. Wysocki
2011-08-26 10:03                   ` Konstantin Khlebnikov
2011-08-26 10:03                     ` Konstantin Khlebnikov
2011-08-26 10:48                     ` Michal Hocko
2011-08-26 10:48                       ` Michal Hocko
2011-08-26 12:44                       ` Konstantin Khlebnikov
2011-08-26 12:44                         ` Konstantin Khlebnikov
2011-08-26 12:59                         ` Michal Hocko
2011-08-26 12:59                           ` Michal Hocko
2011-08-26  7:35               ` Konstantin Khlebnikov [this message]
2011-08-26  7:35                 ` Konstantin Khlebnikov
2011-08-26  9:09                 ` David Rientjes
2011-08-26  9:09                   ` David Rientjes
2011-08-26  9:59                   ` Konstantin Khlebnikov
2011-08-26  9:59                     ` Konstantin Khlebnikov
2011-08-26 18:09                     ` David Rientjes
2011-08-26 18:09                       ` David Rientjes
2011-08-25 21:03           ` Rafael J. Wysocki
2011-08-25 21:03             ` Rafael J. Wysocki

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=4E574CA5.4010701@openvz.org \
    --to=khlebnikov@openvz.org \
    --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=mhocko@suse.cz \
    --cc=oleg@redhat.com \
    --cc=rientjes@google.com \
    --cc=rjw@sisk.pl \
    /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.