From: sashiko-bot@kernel.org
To: "SJ Park" <sj@kernel.org>
Cc: damon@lists.linux.dev
Subject: Re: [PATCH 6/7] mm/damon/core: update probe hits for new parameter commit
Date: Wed, 08 Jul 2026 14:08:07 +0000 [thread overview]
Message-ID: <20260708140807.F21141F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260708135359.122587-7-sj@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Scaling of `probe_hits` during parameter update produces mathematically incorrect results and silent integer truncation due to `unsigned char` type constraints.
--
--- Patch [6]: [PATCH 6/7] mm/damon/core: update probe hits for new parameter commit ---
commit 6ec1cede99a50d44fcfc3e2fc6a1b5334600120f
Author: SJ Park <sj@kernel.org>
Subject: mm/damon/core: update probe hits for new parameter commit
Users can dynamically update subsystem parameters at runtime. This patch adds
logic to appropriately scale probe_hits and last_probe_hits based on the
updated aggregation and sample intervals to maintain accurate monitoring
snapshots.
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index 800ff6b6d2473..15d31285515d6 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
[ ... ]
> @@ -897,10 +897,32 @@ static unsigned int damon_nr_samples_for_new_attrs(unsigned int nr,
> damon_sample_count_to_bp(nr, old_attrs), new_attrs);
> }
>
> +static void damon_update_probe_hits(struct damon_region *r,
> + struct damon_attrs *old_attrs, struct damon_attrs *new_attrs,
> + bool aggregating, struct damon_ctx *ctx)
> +{
> + struct damon_probe *p;
> + int i = 0;
> +
> + damon_for_each_probe(p, ctx) {
> + r->last_probe_hits[i] = damon_nr_samples_for_new_attrs(
> + r->last_probe_hits[i], old_attrs, new_attrs);
> + if (!aggregating)
> + r->probe_hits[i] = damon_nr_samples_for_new_attrs(
> + r->probe_hits[i], old_attrs,
> + new_attrs);
[Severity: High]
Does this code silently truncate the scaled results?
damon_nr_samples_for_new_attrs() returns an unsigned int, but both
last_probe_hits[] and probe_hits[] in struct damon_region are unsigned char
arrays. If the user updates the parameters such that the new ratio of
aggr_interval to sample_interval scales the sample count above 255, the
assignment to unsigned char will silently wrap.
For example, if a hit count is scaled up to 300, the stored value would
become 44. Could this produce mathematically invalid scaling and corrupt the
relative hit proportions that the monitoring results rely on?
> + else
> + r->probe_hits[i] = 0;
> + i++;
> + }
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260708135359.122587-1-sj@kernel.org?part=6
next prev parent reply other threads:[~2026-07-08 14:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 13:53 [PATCH 0/7] mm/damon: update probe hits for runtime parameter commits SJ Park
2026-07-08 13:53 ` [PATCH 1/7] mm/damon/core: remove comment and test for nr_to_bp() divide-by-zero SJ Park
2026-07-08 14:13 ` sashiko-bot
2026-07-08 14:25 ` SJ Park
2026-07-08 14:31 ` SJ Park
2026-07-08 13:53 ` [PATCH 2/7] mm/damon/core: s/damon_max_nr_accesses()/damon_nr_samples_per_aggr()/ SJ Park
2026-07-08 13:53 ` [PATCH 3/7] mm/damon/core: s/accesses_bp_to_nr_accesses/sample_bp_to_count/ SJ Park
2026-07-08 13:53 ` [PATCH 4/7] mm/damon/core: s/nr_accesses_to_accesses_bp/sample_count_to_bp/ SJ Park
2026-07-08 14:03 ` sashiko-bot
2026-07-08 14:26 ` SJ Park
2026-07-08 13:53 ` [PATCH 5/7] mm/damon/core: s/nr_accesses_for_new_attrs/nr_samples_for_new_attrs/ SJ Park
2026-07-08 14:09 ` sashiko-bot
2026-07-08 14:27 ` SJ Park
2026-07-08 13:53 ` [PATCH 6/7] mm/damon/core: update probe hits for new parameter commit SJ Park
2026-07-08 14:08 ` sashiko-bot [this message]
2026-07-08 14:28 ` SJ Park
2026-07-08 13:53 ` [PATCH 7/7] mm/damon/core: handle unreset probe_hits in probe_hits_mvsum() SJ Park
2026-07-08 14:34 ` [PATCH 0/7] mm/damon: update probe hits for runtime parameter commits SJ Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260708140807.F21141F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=damon@lists.linux.dev \
--cc=sashiko-reviews@lists.linux.dev \
--cc=sj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox