From: SeongJae Park <sj@kernel.org>
To: sashiko-bot@kernel.org
Cc: SeongJae Park <sj@kernel.org>, damon@lists.linux.dev
Subject: Re: [RFC PATCH v1.2 01/17] mm/damon: introduce damon_nr_accesses_mvsum()
Date: Sun, 21 Jun 2026 13:01:29 -0700 [thread overview]
Message-ID: <20260621200129.9978-1-sj@kernel.org> (raw)
In-Reply-To: <20260621161038.AE9411F000E9@smtp.kernel.org>
On Sun, 21 Jun 2026 16:10:38 +0000 sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Integer overflow in left_window_bp calculation on 32-bit architectures
> --
>
> commit c5893684a7c356bd0f4693c2ef6895c46e83d332
> Author: SeongJae Park <sj@kernel.org>
>
> mm/damon: introduce damon_nr_accesses_mvsum()
>
> Introduce a new DAMON core function, damon_nr_accesses_mvsum(), to return a
> pseudo moving sum value of a given region's nr_accesses for the last
> aggregation interval. This value acts as a relative access frequency score
> that is updated only when requested.
>
> > diff --git a/mm/damon/core.c b/mm/damon/core.c
> > --- a/mm/damon/core.c
> > +++ b/mm/damon/core.c
>
> [ ... ]
>
> > +unsigned int damon_nr_accesses_mvsum(struct damon_region *r,
> > + struct damon_ctx *ctx)
> > +{
> > + unsigned long sample_interval, aggr_interval;
> > + unsigned long window_len, left_window, left_window_bp;
> > +
> > + sample_interval = ctx->attrs.sample_interval ? : 1;
> > + aggr_interval = ctx->attrs.aggr_interval ? : 1;
> > + window_len = aggr_interval / sample_interval;
> > + if (time_after_eq(ctx->passed_sample_intervals,
> > + ctx->next_aggregation_sis))
> > + left_window = 0;
> > + else
> > + left_window = ctx->next_aggregation_sis -
> > + ctx->passed_sample_intervals;
> > + left_window_bp = mult_frac(left_window, 10000, window_len);
>
> [Severity: Medium]
> Can this cause an integer overflow on 32-bit architectures?
>
> Looking at the mult_frac macro, the remainder is multiplied by the numerator:
> r * n_ / d_
>
> If user-configurable parameters result in a large ratio, such as a 10
> microsecond sample interval and a 5 second aggregation interval, window_len
> becomes 500,000.
>
> If left_window is near that maximum, for example 499,999, the intermediate
> multiplication inside the macro would be 499,999 * 10000. This evaluates to
> 4,999,990,000, which exceeds the 32-bit unsigned long maximum of
> 4,294,967,295.
>
> Could this wrap around and result in an incorrectly small remainder,
> producing an inaccurate left_window_bp percentage? Passing 10000ULL might
> enforce 64-bit math to avoid this.
It happens only in weird setup, so we are ignoring this issue for now. We can
revisit if a user claims this as an issue.
Thanks,
SJ
[...]
next prev parent reply other threads:[~2026-06-21 20:01 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-21 15:56 [RFC PATCH v1.2 00/17] mm/damon: optimize out nr_accesses_bp SeongJae Park
2026-06-21 15:56 ` [RFC PATCH v1.2 01/17] mm/damon: introduce damon_nr_accesses_mvsum() SeongJae Park
2026-06-21 16:10 ` sashiko-bot
2026-06-21 20:01 ` SeongJae Park [this message]
2026-06-21 15:56 ` [RFC PATCH v1.2 02/17] mm/damon/tests/core-kunit: test damon_mvsum() SeongJae Park
2026-06-21 15:56 ` [RFC PATCH v1.2 03/17] mm/damon/core: always update ->last_nr_accesses for intervals change SeongJae Park
2026-06-21 16:11 ` sashiko-bot
2026-06-21 20:23 ` SeongJae Park
2026-06-21 21:13 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 04/17] mm/damon/core: use damon_nr_accesses_mvsum() in __damos_valid_target() SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 05/17] mm/damon/core: use damon_nr_accesses_mvsum() for damos region tracing SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 06/17] mm/damon/sysfs-schemes: use damon_nr_accesses_mvsum() for damo regions SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 07/17] mm/damon/core: remove damon_warn_fix_nr_accesses_corruption() SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 08/17] mm/damon/core: remove damon_verify_reset_aggregated() SeongJae Park
2026-06-21 16:06 ` sashiko-bot
2026-06-21 20:24 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 09/17] mm/damon/core: remove damon_verify_merge_regions_of() SeongJae Park
2026-06-21 18:09 ` sashiko-bot
2026-06-21 20:35 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 10/17] mm/damon/tests/core-kunit: remove nr_accesses_bp setup and tests SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 11/17] selftests/damon/drgn_dump_damon_status: do not dump nr_accesses_bp SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 12/17] mm/damon/core: remove nr_accesses_bp setups and updates SeongJae Park
2026-06-21 18:10 ` sashiko-bot
2026-06-21 20:37 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 13/17] mm/damon/core: remove attrs param from damon_update_region_access_rate() SeongJae Park
2026-06-21 16:14 ` sashiko-bot
2026-06-21 20:40 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 14/17] mm/damonn/paddr: remove attrs param from __damon_pa_check_access() SeongJae Park
2026-06-21 16:07 ` sashiko-bot
2026-06-21 20:42 ` SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 15/17] mm/damon/vaddr: remove attrs param from __damon_va_check_access() SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 16/17] mm/damon/core: remove damon_moving_sum() and its unit test SeongJae Park
2026-06-21 15:57 ` [RFC PATCH v1.2 17/17] mm/damon: remove damon_region->nr_accesses_bp SeongJae 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=20260621200129.9978-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=damon@lists.linux.dev \
--cc=sashiko-bot@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.