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: > https://lore.kernel.org/linux-mm/20190321200157.29678-4-keith.busch@xxxxxxxxx/ So let's say I have a page I want to evict from DRAM to the next slower tier of memory. Do I use MADV_COLD or MADV_PAGEOUT? If the LRU behavior is part of the interface itself, then MADV_COLD doesn't work. Do you think we'll need a third MADV_ flag for our automatic migration behavior? MADV_REALLYCOLD? MADV_MIGRATEOUT?