All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: Minchan Kim <minchan@kernel.org>
Cc: Christian Brauner <brauner@kernel.org>,
	akpm@linux-foundation.org, david@kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, surenb@google.com,
	timmurray@google.com
Subject: Re: [RFC 3/3] mm: process_mrelease: introduce PROCESS_MRELEASE_REAP_KILL flag
Date: Fri, 24 Apr 2026 09:38:34 +0200	[thread overview]
Message-ID: <aesd-ojcfSFoZjsF@tiehlicka> (raw)
In-Reply-To: <aequtFtklmfbN7n0@google.com>

On Thu 23-04-26 16:43:48, Minchan Kim wrote:
> On Thu, Apr 23, 2026 at 09:17:39AM +0200, Michal Hocko wrote:
> > On Mon 20-04-26 14:47:04, Minchan Kim wrote:
> > > On Fri, Apr 17, 2026 at 09:04:31AM +0200, Michal Hocko wrote:
> > > > On Thu 16-04-26 23:30:09, Minchan Kim wrote:
> > > > > If I send the SIGKILL first to satisfy the process_mrelease() requirement,
> > > > > we immediately run into the scheduling race condition where the victim can
> > > > > enter the exit path before the reaper can set the flag.
> > > > 
> > > > Why don't you just grab the mm before you send the signal and then continue
> > > > with reaping? You just want to avoid a race where the victim manages to
> > > > process fatal signal, start its exit path and mrelease path losing that
> > > > race so you rely on the exit path, right?
> > > 
> > > The problem is that process_mrelease() operates on a task obtained from a pidfd.
> > > 
> > > Once the victim process receives the SIGKILL and enters the exit path (exit_mm),
> > > the kernel sets task->mm to NULL.
> > > 
> > > Even if we could somehow hold a reference to the mm_struct beforehand,
> > > process_mrelease() would still fail because mm_struct via task returns NULL
> > > after exit_mm() has been called.
> > > 
> > > Therefore, we cannot simply "grab the mm" before sending the signal and expect
> > > process_mrelease() to work after the victim starts exiting.
> > 
> > I do not follow. Why cannot you simply do this
> 
> I misunderstood your point. Do you mean this?
> 
> https://lore.kernel.org/linux-mm/20260421230239.172582-4-minchan@kernel.org/
> 
> There are more details to figure out.

Yes, there are couple of details to iron out. The existing
reaping has some hard requirements in place. I am all for relaxing those
where possible (ideally without much of special casing for this specific
use case) but this is much more viable solution than KILL_MRELEASE you
are introducing here. Keep in mind that fundamentally this should be a
really as simple as trigger exit_mmap after sending SIGKILL. We are
reusing a large part of oom_reaper functionality because it was
comfortable but if there are constrains that stand in the way and they
make no sense for this usecase then do not sick with them.
-- 
Michal Hocko
SUSE Labs


  reply	other threads:[~2026-04-24  7:38 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-13 22:39 [RFC 0/3] mm: process_mrelease: expedited reclaim and auto-kill support Minchan Kim
2026-04-13 22:39 ` [RFC 1/3] mm: process_mrelease: expedite clean file folio reclaim via mmu_gather Minchan Kim
2026-04-14  7:45   ` David Hildenbrand (Arm)
2026-04-14 20:21     ` Minchan Kim
2026-04-13 22:39 ` [RFC 2/3] mm: process_mrelease: skip LRU movement for exclusive file folios Minchan Kim
2026-04-14  7:20   ` David Hildenbrand (Arm)
2026-04-14 20:22     ` Minchan Kim
2026-04-13 22:39 ` [RFC 3/3] mm: process_mrelease: introduce PROCESS_MRELEASE_REAP_KILL flag Minchan Kim
2026-04-16  9:13   ` Christian Brauner
2026-04-17  6:30     ` Minchan Kim
2026-04-17  7:04       ` Michal Hocko
2026-04-20 21:47         ` Minchan Kim
2026-04-23  7:17           ` Michal Hocko
2026-04-23 23:43             ` Minchan Kim
2026-04-24  7:38               ` Michal Hocko [this message]
2026-04-14  6:57 ` [RFC 0/3] mm: process_mrelease: expedited reclaim and auto-kill support Michal Hocko
2026-04-14 20:00   ` Minchan Kim
2026-04-15  7:38     ` Michal Hocko
2026-04-15 23:26       ` Minchan Kim
2026-04-16  6:54         ` Michal Hocko
2026-04-17  6:20           ` Minchan Kim
2026-04-17  7:11             ` Michal Hocko
2026-04-20 21:53               ` Minchan Kim
2026-04-23  7:50                 ` Michal Hocko
2026-04-23  9:49                   ` David Hildenbrand (Arm)
2026-04-23 22:36                     ` Suren Baghdasaryan
2026-04-24  0:08                       ` Minchan Kim
2026-04-24  7:40                       ` Michal Hocko
2026-04-24  7:41                       ` David Hildenbrand (Arm)
2026-04-27 16:14                         ` Suren Baghdasaryan
2026-04-23 23:58                   ` Minchan Kim

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=aesd-ojcfSFoZjsF@tiehlicka \
    --to=mhocko@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=david@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=surenb@google.com \
    --cc=timmurray@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.