linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: David Rientjes <rientjes@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [patch] mm, oom: prevent soft lockup on memcg oom for UP systems
Date: Mon, 16 Mar 2020 11:14:49 +0100	[thread overview]
Message-ID: <20200316101449.GG11482@dhcp22.suse.cz> (raw)
In-Reply-To: <3be371a0-5b1e-7115-8659-186612ad5fb0@i-love.sakura.ne.jp>

On Mon 16-03-20 19:04:44, Tetsuo Handa wrote:
> On 2020/03/16 18:31, Michal Hocko wrote:
> >> What happens if the allocator has SCHED_FIFO?
> > 
> > The same thing as a SCHED_FIFO running in a tight loop in the userspace.
> > 
> > As long as a high priority context depends on a resource held by a low
> > priority task then we have a priority inversion problem and the page
> > allocator is no real exception here. But I do not see the allocator
> > is much different from any other code in the kernel. We do not add
> > random sleeps here and there to push a high priority FIFO or RT tasks
> > out of the execution context. We do cond_resched to help !PREEMPT
> > kernels but priority related issues are really out of scope of that
> > facility.
> > 
> 
> Spinning with realtime priority in userspace is a userspace's bug.
> Spinning with realtime priority in kernelspace until watchdog fires is
> a kernel's bug. We are not responsible for userspace's bug, and I'm
> asking whether the memory allocator kernel code can give enough CPU
> time to other threads even if current thread has realtime priority.

We've been through that discussion many times and the core point is that
this requires a large surgery to work properly. It is not just to add a
sleep into the page allocator and be done with that. Page allocator
cannot really do much on its own. It relies on many other contexts to
make a forward progress. What you really demand is far from trivial.
Maybe you are looking something much closer to the RT kernel than what
other preemption modes can offer currently.

Right now, you really have to be careful when running FIFO/RT processes
and plan their resources very carefully. Is that ideal? Not really but
considering that this is the status quo for many years it seems that
the usecases tend to find their way around that restriction.
-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2020-03-16 10:14 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-10 21:39 [patch] mm, oom: prevent soft lockup on memcg oom for UP systems David Rientjes
2020-03-10 22:05 ` Tetsuo Handa
2020-03-10 22:55   ` David Rientjes
2020-03-11  9:34     ` Tetsuo Handa
2020-03-11 19:38       ` David Rientjes
2020-03-11 22:04         ` Tetsuo Handa
2020-03-11 22:14           ` David Rientjes
2020-03-12  0:12             ` Tetsuo Handa
2020-03-12 18:07               ` David Rientjes
2020-03-12 22:32                 ` Andrew Morton
2020-03-16  9:31                   ` Michal Hocko
2020-03-16 10:04                     ` Tetsuo Handa
2020-03-16 10:14                       ` Michal Hocko [this message]
2020-03-13  0:15                 ` Tetsuo Handa
2020-03-13 22:01                   ` David Rientjes
2020-03-13 23:15                     ` Tetsuo Handa
2020-03-13 23:32                       ` Tetsuo Handa
2020-03-16 23:59                         ` David Rientjes
2020-03-17  3:18                           ` Tetsuo Handa
2020-03-17  4:09                             ` David Rientjes
2020-03-18  0:55                               ` [patch v2] " David Rientjes
2020-03-18  9:42                                 ` Michal Hocko
2020-03-18 21:40                                   ` David Rientjes
2020-03-18 22:03                                     ` [patch v3] " David Rientjes
2020-03-19  7:09                                       ` Michal Hocko
2020-03-12  4:23             ` [patch] " Tetsuo Handa
2020-03-10 22:10 ` Michal Hocko
2020-03-10 23:02   ` David Rientjes
2020-03-11  8:27     ` Michal Hocko
2020-03-11 19:45       ` David Rientjes
2020-03-12  8:32         ` Michal Hocko
2020-03-12 18:20           ` David Rientjes
2020-03-12 20:16             ` Michal Hocko
2020-03-16  9:32               ` Michal Hocko
2020-03-11  0:18 ` Andrew Morton
2020-03-11  0:34   ` David Rientjes
2020-03-11  8:36   ` Michal Hocko

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=20200316101449.GG11482@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=rientjes@google.com \
    --cc=vbabka@suse.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).