Re: [PATCH 1/1] RFC: add pidfd_send_signal flag to reclaim mm while killing a process
flat view
From: Suren Baghdasaryan <surenb@google.com>
Date: 2020-11-14 00:07:01
Also in:
linux-mm, lkml
On Fri, Nov 13, 2020 at 3:55 PM Andrew Morton [off-list ref] wrote:
On Fri, 13 Nov 2020 09:34:48 -0800 Suren Baghdasaryan [off-list ref] wrote:quoted
When a process is being killed it might be in an uninterruptible sleep which leads to an unpredictable delay in its memory reclaim. In low memory situations, when it's important to free up memory quickly, such delay is problematic. Kernel solves this problem with oom-reaper thread which performs memory reclaim even when the victim process is not runnable. Userspace currently lacks such mechanisms and the need and potential solutions were discussed before (see links below). This patch provides a mechanism to perform memory reclaim in the context of the process that sends SIGKILL signal. New SYNC_REAP_MM flag for pidfd_send_signal syscall can be used only when sending SIGKILL signal and will lead to the caller synchronously reclaiming the memory that belongs to the victim and can be easily reclaimed.hm. Seems to me that the ability to reap another process's memory is a generally useful one, and that it should not be tied to delivering a signal in this fashion. And we do have the new process_madvise(MADV_PAGEOUT). It may need a few changes and tweaks, but can't that be used to solve this problem?
Thank you for the feedback, Andrew. process_madvise(MADV_DONTNEED) was one of the options recently discussed in https://lore.kernel.org/linux-api/CAJuCfpGz1kPM3G1gZH+09Z7aoWKg05QSAMMisJ7H5MdmRrRhNQ@mail.gmail.com (local) . The thread describes some of the issues with that approach but if we limit it to processes with pending SIGKILL only then I think that would be doable.