Re: [RFC PATCH v2 03/10] mm/damon/core: implement DAMOS_QUOTA_NODE_MEMCG_USED_BP

From: SeongJae Park
Date: Fri Oct 17 2025 - 14:20:23 EST


On Thu, 9 Oct 2025 14:20:35 -0700 SeongJae Park <sj@xxxxxxxxxx> wrote:

> Implement the handling of the new DAMOS quota goal metric for per-memcg
> per-node memory usage, namely DAMOS_QUOTA_NODE_MEMCG_USED_BP. The
> metric value is calculated as the sum of active/inactive anon/file pages
> of the given cgroup for a given NUMA node.
>
> Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
> ---
> mm/damon/core.c | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index 93848b4c6944..1eacf78aa358 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
[...]
> @@ -2058,6 +2093,9 @@ static void damos_set_quota_goal_current_value(struct damos_quota_goal *goal)
> case DAMOS_QUOTA_NODE_MEM_FREE_BP:
> goal->current_value = damos_get_node_mem_bp(goal);
> break;
> + case DAMOS_QUOTA_NODE_MEMCG_USED_BP:
> + goal->current_value = damos_get_node_memcg_used_bp(goal);
> + break;
> default:
> break;
> }
> --
> 2.39.5

In addition to damos_set_quota_goal_current_value(), this patch should also
update damos_commit_quota_goal_union(), like below. I will add that on the
next spin.

--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -825,6 +825,10 @@ static void damos_commit_quota_goal_union(
case DAMOS_QUOTA_NODE_MEM_FREE_BP:
dst->nid = src->nid;
break;
+ case DAMOS_QUOTA_NODE_MEMCG_USED_BP:
+ dst->nid = src->nid;
+ dst->memcg_id = src->memcg_id;
+ break;
default:
break;
}


Thanks,
SJ