On Fri 08-10-21 10:17:50, David Hildenbrand wrote: > On 08.10.21 08:39, ultrachin@xxxxxxx wrote: > > From: chen xiaoguang <xiaoggchen@xxxxxxxxxxx> > > > > 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@xxxxxxxxxxx> > > Signed-off-by: zeng jingxiang <linuszeng@xxxxxxxxxxx> > > Signed-off-by: lu yihui <yihuilu@xxxxxxxxxxx> > > 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. > > There is mmdrop_async(), and I wondered if one could reuse that concept when > tearing down a process -- I didn't look into feasibility, however, so it's > just some very rough idea. This is not a new problem. Large process tear down can take ages. The primary road block has been accounting. This lot of work has to be accounted to the proper domain (e.g. cpu cgroup). A deferred and properly accounted context implementation is still lacking AFAIK. I have a vague recollection we have padata framework but I am not sure anybody has explored this to be used for the address space shutdown. IIRC Daniel Jordan was active in that area. -- Michal Hocko SUSE Labs