I show you already posted v3 [1] of this series. So I'm skipping this version.
[1] https://lore.kernel.org/20260322214325.260007-1-objecting@objecting.org
Thanks,
SJ
On Sun, 22 Mar 2026 21:36:29 +0000 Josh Law <objecting@objecting.org> wrote:
> Hello,
>
> This patch series provides two performance optimizations for the DAMON
> core, specifically targeting the hot paths in kdamond.
>
> The first patch optimizes kdamond_apply_schemes() by inverting the loop
> order. By iterating over schemes first and regions second, we can
> evaluate scheme-level invariants (like activation status and quotas)
> once per scheme rather than for every single region. This significantly
> reduces CPU overhead when multiple schemes are present or when quotas
> are reached.
>
> The second patch eliminates a hardware integer division in
> damon_max_nr_accesses() by using the pre-cached aggr_samples value.
> Since this function is called once per region per sampling interval,
> removing the division provides a measurable reduction in CPU cycles
> spent in the access rate update path.
>
> Changes from v1:
> - Use min_t(unsigned long, ...) in damon_max_nr_accesses() to satisfy
> checkpatch warnings and improve readability.
>
> Josh Law (2):
> mm/damon/core: optimize kdamond_apply_schemes() by inverting scheme
> and region loops
> mm/damon/core: eliminate hot-path integer division in
> damon_max_nr_accesses()
>
> include/linux/damon.h | 3 +-
> mm/damon/core.c | 68 ++++++++++++++++++-------------------------
> 2 files changed, 29 insertions(+), 42 deletions(-)
>
> --
> 2.43.0
Sent using hkml (https://github.com/sjp38/hackermail)