Re: [PATCH v2 0/3] mm: tlb swap entries batch async release

From: Andrew Morton
Date: Tue Aug 06 2024 - 18:39:58 EST


On Wed, 7 Aug 2024 04:32:09 +0800 Barry Song <21cnbao@xxxxxxxxx> wrote:

> > > their independent mm, rather than parent and child processes share the
> > > same mm. Therefore, when the kernel executes multiple exiting process
> > > simultaneously, they will definitely occupy multiple CPU core resources
> > > to complete it.
> >
> > What I'm asking is why not change those userspace processes so that they
> > fork off a child process which shares the MM (shared mm_struct) and
> > then the original process exits, leaving the asynchronously-running
> > child to clean up the MM resources.
>
> Not Zhiguo. From my perspective as a phone engineer, this issue isn't related
> to the parent-child process or the wait() function. Phones rely heavily on
> mechanisms similar to the OOM killer to function efficiently. For instance,
> if you're using apps like YouTube, TikTok, and Facebook, and then you
> open the camera app to take a photo, the camera app becomes the foreground
> process and demands a lot of memory. In this scenario, the phone might
> decide to terminate the most memory-consuming and less important apps,
> such as TikTok or YouTube, to free up memory for the camera app. TikTok
> and YouTube become less important because they are no longer occupying
> the phone's screen and have moved to the background. The faster TikTok
> and YouTube can be unmapped, the quicker the camera app can launch,
> enhancing the user experience.

I don't see how this relates to my question.

Userspace can arrange for these resources to be released in an
asynchronous fashion (can't it?). So why change the kernel to do that?