Commit 1aef9df0 authored by SeongJae Park's avatar SeongJae Park Committed by Andrew Morton
Browse files

mm/damon/core: commit damos_quota_goal->nid

DAMOS quota goal uses 'nid' field when the metric is
DAMOS_QUOTA_NODE_MEM_{USED,FREE}_BP.  But the goal commit function is not
updating the goal's nid field.  Fix it.

Link: https://lkml.kernel.org/r/20250719181932.72944-1-sj@kernel.org


Fixes: 0e1c773b ("mm/damon/core: introduce damos quota goal metrics for memory node utilization")	[6.16.x]
Signed-off-by: default avatarSeongJae Park <sj@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 6ade1533
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -754,6 +754,19 @@ static struct damos_quota_goal *damos_nth_quota_goal(
	return NULL;
}

static void damos_commit_quota_goal_union(
		struct damos_quota_goal *dst, struct damos_quota_goal *src)
{
	switch (dst->metric) {
	case DAMOS_QUOTA_NODE_MEM_USED_BP:
	case DAMOS_QUOTA_NODE_MEM_FREE_BP:
		dst->nid = src->nid;
		break;
	default:
		break;
	}
}

static void damos_commit_quota_goal(
		struct damos_quota_goal *dst, struct damos_quota_goal *src)
{
@@ -762,6 +775,7 @@ static void damos_commit_quota_goal(
	if (dst->metric == DAMOS_QUOTA_USER_INPUT)
		dst->current_value = src->current_value;
	/* keep last_psi_total as is, since it will be updated in next cycle */
	damos_commit_quota_goal_union(dst, src);
}

/**
@@ -795,6 +809,7 @@ int damos_commit_quota_goals(struct damos_quota *dst, struct damos_quota *src)
				src_goal->metric, src_goal->target_value);
		if (!new_goal)
			return -ENOMEM;
		damos_commit_quota_goal_union(new_goal, src_goal);
		damos_add_quota_goal(dst, new_goal);
	}
	return 0;