Messages in this thread | | | Date | Sun, 10 Oct 2021 15:42:01 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] mm: Free per cpu pages async to shorten program exit time |
| |
On Fri, 8 Oct 2021 14:38:15 +0200 Vlastimil Babka <vbabka@suse.cz> wrote:
> On 10/8/21 10:17, David Hildenbrand wrote: > > On 08.10.21 08:39, ultrachin@163.com wrote: > >> From: chen xiaoguang <xiaoggchen@tencent.com> > >> > >> The exit time is long when program allocated big memory and > >> the most time consuming part is free memory which takes 99.9% > >> of the total exit time. By using async free we can save 25% of > >> exit time. > >> > >> Signed-off-by: chen xiaoguang <xiaoggchen@tencent.com> > >> Signed-off-by: zeng jingxiang <linuszeng@tencent.com> > >> Signed-off-by: lu yihui <yihuilu@tencent.com> > > > > I recently discussed with Claudio if it would be possible to tear down the > > process MM deferred, because for some use cases (secure/encrypted > > virtualization, very large mmaps) tearing down the page tables is already > > the much more expensive operation. > > OK, but what exactly is the benefit here? The cpu time will have to be spent > in any case, but we move it to a context that's not accounted to the exiting > process. Is that good? Also if it's a large process and restarts > immediately, allocating all the memory back again, it might not be available > as it's still being freed in the background, leading to a risk of OOM?
Yes, concerns. Some way of blocking the oom-killer if this freeing is in progress sounds needed.
Dumb question: can the exiting process just clone(CLONE_MM) then exit? Let the child take the burden of all the cleanup?
| |