Re: [PATCH] mm/damon/core: validate ranges in damon_set_regions()
From: SJ Park
Date: Tue Jun 30 2026 - 00:27:01 EST
On Mon, 29 Jun 2026 20:52:19 -0700 SJ Park <sj@xxxxxxxxxx> wrote:
> DAMON core logic assumes zero length regions don't exist. However, a
> few DAMON API callers including DAMON_SYSFS, DAMON_RECLAIM and
> DAMON_LRU_SORT allow users to set empty monitoring target regions. This
> could result in WARN_ONCE() on CONFIG_DAMON_DEBUG_SANITY enabled kernel,
> and divide-by-zero from damon_merge_two_regions().
>
> For example, the WANR_ONCE() can be triggered like below.
>
> # grep DAMON_DEBUG_SANITY /boot/config-$(uname -r)
> # CONFIG_DAMON_DEBUG_SANITY=y
> # damo start
> # cd /sys/kernel/mm/damon/admin/kdamonds/0
> # echo 0 > contexts/0/targets/0/regions/0/start
> # echo 0 > contexts/0/targets/0/regions/0/end
> # echo commit > state
> # dmesg
> [....]
> [ 73.705780] ------------[ cut here ]------------
> [ 73.707552] start 0 >= end 0
> [ 73.708452] WARNING: mm/damon/core.c:359 at damon_new_region+0x6e/0x80, CPU#1: kdamond.0/758
> [...]
>
> All DAMON API callers eventually use damon_set_regions() to setup the
> regions. Add the validation logic in the function.
Sashiko found a pre-existing issue, and it is not a blocker of this patch in my
opinion. Read my reply [1] to Sashiko review for more details. So this patch
is good to go.
[1] https://lore.kernel.org/20260630041806.151124-1-sj@xxxxxxxxxx
Thanks,
SJ
[...]