[PATCH v2 0/2] Add a new scheme to support demotion on tiered memory system

Baolin Wang
2021-12-22T11:14:59Z

Hi,

Now on tiered memory system with different memory types, the reclaim path in
shrink_page_list() already support demoting pages to slow memory node instead
of discarding the pages. However, at that time the fast memory node memory
wartermark is already tense, which will increase the memory allocation latency
during page demotion. So a new method from user space demoting cold pages
proactively will be more helpful.

We can rely on the DAMON in user space to help to monitor the cold memory on
fast memory node, and demote the cold pages to slow memory node proactively to
keep the fast memory node in a healthy state.

This patch set introduces a new scheme named DAMOS_DEMOTE to support this feature,
and works well from my testing. Any comments are welcome. Thanks.

Changes from v1:
- Reuse the demote_page_list().
- Fix some comments style issues.
- Move the DAMOS_DEMOTE definition to the correct place.
- Rename some function name.
- Change to return void type for damos_isolate_page().
- Remove unnecessary PAGE_ALIGN() in damos_demote().
- Fix the return value for damos_demote().

Baolin Wang (2):
mm: Export the demote_page_list() function
mm/damon: Add a new scheme to support demotion on tiered memory system

include/linux/damon.h | 3 ++
mm/damon/dbgfs.c | 1 +
mm/damon/vaddr.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++
mm/internal.h | 2 +
mm/vmscan.c | 4 +-
5 files changed, 155 insertions(+), 2 deletions(-)

--
1.8.3.1