On Thu 27-06-19 06:13:36, Dave Hansen wrote: > On 6/27/19 4:54 AM, Minchan Kim wrote: > > This patch introduces the new MADV_COLD hint to madvise(2) syscall. > > MADV_COLD can be used by a process to mark a memory range as not expected > > to be used in the near future. The hint can help kernel in deciding which > > pages to evict early during memory pressure. > > > > It works for every LRU pages like MADV_[DONTNEED|FREE]. IOW, It moves > > > > active file page -> inactive file LRU > > active anon page -> inacdtive anon LRU > > Is the LRU behavior part of the interface or the implementation? > > I ask because we've got something in between tossing something down the > LRU and swapping it: page migration. Specifically, on a system with > slower memory media (like persistent memory) we just migrate a page > instead of discarding it at reclaim: But we already do have interfaces for migrating the memory (move_pages(2)). Why should this interface duplicate that interface? I believe the only purpose of these two new madvise modes is to provide a non-destructive MADV_{DONTNEED,FREE} alteternatives. In other words, pageout vs. age interface. -- Michal Hocko SUSE Labs