Re: [PATCH v3 1/5] mm: introduce MADV_COLD
From: Dave Hansen <hidden>
Date: 2019-06-27 13:13:40
Also in:
linux-mm, lkml
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@intel.com/ (local)
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?