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

From: Shakeel Butt
Date: Wed Jun 30 2021 - 15:00:56 EST


On Wed, Jun 30, 2021 at 11:44 AM Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote:
>
[...]
> > > + /*
> > > + * If the task is dying and in the process of releasing its memory
> > > + * then get its mm.
> > > + */
> > > + task_lock(task);
> > > + if (task_will_free_mem(task) && (task->flags & PF_KTHREAD) == 0) {
> >
> > task_will_free_mem() is fine here but I think in parallel we should
> > optimize this function. At the moment it is traversing all the
> > processes on the machine. It is very normal to have tens of thousands
> > of processes on big machines, so it would be really costly when
> > reaping a bunch of processes.
>
> Hmm. But I think we still need to make sure that the mm is not shared
> with another non-dying process. IIUC that's the point of that
> traversal. Am I mistaken?

You are right. I am talking about efficiently finding all processes
which are sharing mm (maybe linked into another list) instead of
traversing all the processes on the system.