On Thu 27-06-19 06:13:36, Dave Hansen wrote:
On 6/27/19 4:54 AM, Minchan Kim wrote:
quoted
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