Re: [RFC PATCH v2 0/3] Add NUMA-aware DAMOS watermarks

From: SeongJae Park
Date: Tue May 21 2024 - 21:09:23 EST


Hi Jonghyeon,

On Mon, 20 May 2024 14:30:35 +0000 Jonghyeon Kim <tome01@xxxxxxxxxx> wrote:

> Current DAMOS schemes are not considered with multiple NUMA memory nodes.
> For example, If we want to proactively reclaim memory of a one NUMA node,
> DAMON_RECLAIM has to wake up kdamond before kswapd does reclaim memory.
> However, since the DAMON watermarks are based on not a one NUMA memory
> node but total system free memory, kdamond is not waked up before invoking
> memory reclamation from kswapd of the target node.
>
> These patches allow for DAMON to select monitoring target either total
> memory or a specific NUMA memory node.

I feel such usage could exist, but my humble brain is not clearly imagining
such realistic usage. If you could further clarify the exampected usage, it
would be very helpful for me to better understand the intention and pros/cons
of this patchset. Especially, I'm wondering why they would want to use the
watermark feature, rather than manually checking the metric and turning DAMON
on/off, or feeding the metric as a quota tuning goal.

>
> ---
> Changes from RFC PATCH v1
> (https://lore.kernel.org/all/20220218102611.31895-1-tome01@xxxxxxxxxx)
> - Add new metric type for NUMA node, DAMOS_WMARK_NODE_FREE_MEM_RATE
> - Drop commit about damon_start()
> - Support DAMON_LRU_SORT
>
> Jonghyeon Kim (3):
> mm/damon: Add new metric type and target node for watermark
> mm/damon: add module parameters for NUMA system
> mm/damon: add NUMA-awareness to DAMON modules

Following up to the above question, why they would want to use DAMON modules
rather than manually controlling DAMON via DAMON sysfs interface?


Thanks,
SJ

>
> include/linux/damon.h | 11 +++++++++--
> mm/damon/core.c | 11 ++++++++---
> mm/damon/lru_sort.c | 14 ++++++++++++++
> mm/damon/modules-common.h | 4 +++-
> mm/damon/reclaim.c | 14 ++++++++++++++
> mm/damon/sysfs-schemes.c | 35 +++++++++++++++++++++++++++++++++--
> 6 files changed, 81 insertions(+), 8 deletions(-)
>
> --
> 2.34.1