From: Minchan Kim <minchan@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>,
Suren Baghdasaryan <surenb@google.com>,
akpm@linux-foundation.org, hca@linux.ibm.com,
linux-s390@vger.kernel.org, brauner@kernel.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
timmurray@google.com, "Liam R. Howlett" <Liam.Howlett@oracle.com>
Subject: Re: [PATCH v1 2/3] mm: process_mrelease: skip LRU movement for exclusive file folios
Date: Wed, 29 Apr 2026 14:41:40 -0700 [thread overview]
Message-ID: <afJ7FPkNK6cxUxSe@google.com> (raw)
In-Reply-To: <7f98f461-62a7-455d-a7a8-cb8928465946@kernel.org>
On Wed, Apr 29, 2026 at 11:09:55AM +0200, David Hildenbrand (Arm) wrote:
> On 4/29/26 10:18, Michal Hocko wrote:
> > On Tue 28-04-26 18:19:31, Minchan Kim wrote:
> >> On Tue, Apr 28, 2026 at 08:56:36AM +0200, Michal Hocko wrote:
> > [...]
> >>> DESCRIPTION
> >>> The process_mrelease() system call is used to free the memory of
> >>> an exiting process.
> >>
> >> "Free the memory of an exiting process" implies all memory, not just
> >> anonymous. User cannot know it will free only anonymous, and I am trying to
> >> make it work as intended by completing a symmetric reclamation path.
> >
> > Page cache doesn't belong to any process.
> >
> > [...]
> >
> >> >From cf292f8f8ead8df9161aad342c36633ffa90257f Mon Sep 17 00:00:00 2001
> >> From: Minchan Kim <minchan@kernel.org>
> >> Date: Tue, 28 Apr 2026 16:39:06 -0700
> >> Subject: [PATCH] mm: process_mrelease: skip LRU movement and expedite clean
> >> file folio reclaim
> >
> > I will let others to discuss this. I maintain my position that this is a
> > hack for a very particular use case and you still seem to not explain
> > non-Android users of the syscall. Anyway, I will not repeat myself here.
> >
>
> One thing that got lost in the thread here: this code path is not
> process_mrelease specific?
>
> We seem to end up in __oom_reap_task_mm() also from ordinary oom_reap_task_mm().
>
> There, we unconditionally set MMF_UNSTABLE to then zap_vma_for_reaping() where
> memory can be "reaped".
After updating my development brach, I see zap_vma_for_reaping now.
>
> So why is there "process_mrelease" part of the patch subject at all?
While __oom_reap_task_mm() is indeed shared with ordinary oom_reap_task_mm(),
I added a boolean parameter (try_evict_file_folios) to isolate the
optimizations in recent patch.
-static bool __oom_reap_task_mm(struct mm_struct *mm)
+static bool __oom_reap_task_mm(struct mm_struct *mm, bool try_evict_file_folios)
{
struct vm_area_struct *vma;
bool ret = true;
@@ -556,12 +556,14 @@ static bool __oom_reap_task_mm(struct mm_struct *mm)
mm, vma->vm_start,
vma->vm_end);
tlb_gather_mmu(&tlb, mm);
+ tlb.try_evict_file_folios = try_evict_file_folios;
+ struct zap_details details = { .ignore_access = try_evict_file_folios };
if (mmu_notifier_invalidate_range_start_nonblock(&range)) {
tlb_finish_mmu(&tlb);
ret = false;
continue;
}
- unmap_page_range(&tlb, vma, range.start, range.end, NULL);
+ unmap_page_range(&tlb, vma, range.start, range.end, &details);
mmu_notifier_invalidate_range_end(&range);
tlb_finish_mmu(&tlb);
}
In the current patch, ordinary oom_reap_task_mm() passes 'false', so it
does not see these side effects of broken aging and file cache eviction.
The optimizations are strictly active only when userspace calls
process_mrelease() with the PROCESS_MRELEASE_REAP_KILL flag.
(I believe OOM killer is ultimately target of the user but didn't want
to introduce side effect until we can conclude for the direction).
next prev parent reply other threads:[~2026-04-29 21:41 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-21 23:02 [PATCH v1 0/3] mm: process_mrelease: expedite clean file folio reclaim and add auto-kill Minchan Kim
2026-04-21 23:02 ` [PATCH v1 1/3] mm: process_mrelease: expedite clean file folio reclaim via mmu_gather Minchan Kim
2026-04-24 7:56 ` David Hildenbrand (Arm)
2026-04-24 21:24 ` Minchan Kim
2026-04-27 9:29 ` David Hildenbrand (Arm)
2026-04-27 22:04 ` Minchan Kim
2026-04-24 19:33 ` Matthew Wilcox
2026-04-24 21:56 ` Minchan Kim
2026-04-21 23:02 ` [PATCH v1 2/3] mm: process_mrelease: skip LRU movement for exclusive file folios Minchan Kim
2026-04-22 7:22 ` Baolin Wang
2026-04-23 23:38 ` Minchan Kim
2026-04-24 7:51 ` Michal Hocko
2026-04-24 7:57 ` David Hildenbrand (Arm)
2026-04-24 19:15 ` Minchan Kim
2026-04-27 7:16 ` Michal Hocko
2026-04-27 16:48 ` Suren Baghdasaryan
2026-04-27 17:15 ` Michal Hocko
2026-04-27 23:05 ` Minchan Kim
2026-04-28 6:56 ` Michal Hocko
2026-04-29 1:19 ` Minchan Kim
2026-04-29 8:18 ` Michal Hocko
2026-04-29 9:09 ` David Hildenbrand (Arm)
2026-04-29 10:33 ` Michal Hocko
2026-04-29 13:07 ` David Hildenbrand (Arm)
2026-04-29 14:44 ` Michal Hocko
2026-04-29 21:41 ` Minchan Kim [this message]
2026-04-29 8:55 ` David Hildenbrand (Arm)
2026-04-29 21:42 ` Minchan Kim
2026-04-24 19:26 ` Minchan Kim
2026-04-21 23:02 ` [PATCH v1 3/3] mm: process_mrelease: introduce PROCESS_MRELEASE_REAP_KILL flag Minchan Kim
2026-04-24 7:57 ` Michal Hocko
2026-04-24 22:49 ` Minchan Kim
2026-04-27 7:02 ` Michal Hocko
2026-04-27 22:03 ` Minchan Kim
2026-04-28 7:01 ` Michal Hocko
2026-04-28 22:37 ` Minchan Kim
2026-04-29 8:25 ` Michal Hocko
2026-04-29 20:01 ` Suren Baghdasaryan
2026-04-29 21:17 ` Minchan Kim
2026-04-29 21:16 ` Minchan Kim
2026-04-27 20:34 ` Suren Baghdasaryan
2026-04-27 22:52 ` 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=afJ7FPkNK6cxUxSe@google.com \
--to=minchan@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=david@kernel.org \
--cc=hca@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=mhocko@suse.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox