Re: [PATCH 3/4] mm/damon/core: copy nid for eligible_mem_bp damos quota goal commit

From: Kunwu Chan

Date: Thu Sep 03 2026 - 05:02:32 EST


On Tue, 1 Sep 2026 17:27:22 -0700 SJ Park <sj@xxxxxxxxxx> wrote:

> damos_commit_quota_goal_union() is not updating the ->nid union field
> when the goal metric is DAMOS_QUITA_NODE_ELIGIBLE_MEM_BP. Hence, if a
> DAMOS quota goal of the type is online committed in a way that it will
> reuse other quota goal's memory space, the new goal will work with a
> garbage nid value. As a result, the DAMOS scheme can show unexpected
> aggressiveness. Do the update.
>
> The user impact is not catastrophic. No leak or crash happens. Doing
> the quota goal online commit that can reproduce the issue is expected to
> be not common. This issue was not found by real users but the AI
> review. That said, the issue can reliably be reproduced.
>
> This issue was discovered [1] by Sashiko.
>
> [1] https://lore.kkernel.org/20260827045035.94611-1-sj@xxxxxxxxxx

Hi SJ,

The fix is consistent with the other node-based quota metrics. I also
checked that damos_get_node_eligible_mem_bp() directly uses goal->nid
when calculating the current value.

One minor typo: the [1] has an extra k (kkernel should be kernel).

Reviewed-by: Kunwu Chan <kunwu.chan@xxxxxxxxx>

Thanks,
Kunwu

>
> Fixes: 9138e27a3bc3 ("mm/damon: add node_eligible_mem_bp goal metric")
> Cc: <stable@xxxxxxxxxxxxxxx> # 7.2.x
> Signed-off-by: SJ Park <sj@xxxxxxxxxx>
> ---
> mm/damon/core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index 20748b0a71026..53c3f97e3f126 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
> @@ -1143,6 +1143,9 @@ static void damos_commit_quota_goal_union(
> dst->nid = src->nid;
> dst->memcg_id = src->memcg_id;
> break;
> + case DAMOS_QUOTA_NODE_ELIGIBLE_MEM_BP:
> + dst->nid = src->nid;
> + break;
> default:
> break;
> }
> --
> 2.47.3
>

Sent using hkml (https://github.com/sjp38/hackermail)