On Tue, Mar 17, 2020 at 04:58:55PM +0100, Michal Hocko wrote: > On Tue 17-03-20 08:00:55, Minchan Kim wrote: > > On Tue, Mar 17, 2020 at 08:12:39AM +0100, Michal Hocko wrote: > [...] > > > Just to make it clear, are you really suggesting to special case > > > page_check_references for madvise path? > > > > > > > No, (page_mapcount() > 1) checks *effectively* fixes the performance > > bug as well as vulnerability issue. > > Ahh, ok then we are on the same page. You were replying to the part > where I have pointed out that you can control aging by these calls > and your response suggested that this is somehow undesirable behavior or > even a bug. Sorry about the confusing. I want to clarify my speaking. If we don't have vulnerability issue Jann raised, the performance issue Daniel pointed should be fixed by introducing a special flag in page_check_references from madvise path to avoid cleaning of access bit from other processes's pte. With it, we don't need to limit semantic of MADV_PAGEOUT as "exclusive page only" so that MADV_PAGEOUT will work *cold* shared pages as well as exclusive one. However, since we have the vulnerability issue, *unfortunately*, we need to make MADV_PAGEOUT's semantic working with only exclusive page. Thus, page_mapcount check in madvise patch will fix both issues *effectively*. Thanks.