Re: [PATCH 1/1] mm: introduce process_reap system call

From: David Hildenbrand
Date: Mon Jul 05 2021 - 03:42:02 EST


On 02.07.21 17:27, Christian Brauner wrote:
On Thu, Jul 01, 2021 at 03:59:48PM -0700, Suren Baghdasaryan wrote:
On Wed, Jun 30, 2021 at 5:44 PM Andy Lutomirski <luto@xxxxxxxxxx> wrote:

On Wed, Jun 30, 2021 at 2:45 PM Johannes Weiner <hannes@xxxxxxxxxxx> wrote:

On Wed, Jun 30, 2021 at 11:51:36AM -0700, Suren Baghdasaryan wrote:
On Wed, Jun 30, 2021 at 11:26 AM Andy Lutomirski <luto@xxxxxxxxxx> wrote:
Also, please consider removing all mention of the word "reap" from the
user API. For better or for worse, "reap" in UNIX refers to what
happens when a dead task gets wait()ed. I sincerely wish I could go
back in time and gently encourage whomever invented that particular
abomination to change their mind, but my time machine doesn't work.

I see. Thanks for the note. How about process_mem_release() and
replacing reap with release everywhere?

I don't quite understand the objection. This syscall works on tasks
that are at the end of their life, right? Isn't something like
process_mreap() establishing exactly the mental link we want here?
Release is less descriptive for what this thing is to be used for.

For better or for worse, "reap" means to make a zombie pid go away.
From the description, this new operation takes a dying process (not
necessarily a zombie yet) and aggressively frees its memory. This is
a different optioneration.

How about "free_dying_process_memory"?

process_mreap sounds definitely better and in line with names like
process_madvise. So maybe we can use it?

That one was my favorite from the list I gave too but maybe we can
satisfy Andy too if we use one of:
- process_mfree()
- process_mrelease()


FWIW, I tend to like process_mrelease(), due to the implied "release" ("free the memory if there are no other references") semantics. Further, a new syscall feels cleaner than some magic sysfs/procfs toggle. Just my 2 cents.

--
Thanks,

David / dhildenb