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?