* [PATCH v2] samples/damon/mtier: fail early if address range parameters are invalid
@ 2026-06-09 6:46 Zenghui Yu
2026-06-09 14:49 ` SeongJae Park
0 siblings, 1 reply; 3+ messages in thread
From: Zenghui Yu @ 2026-06-09 6:46 UTC (permalink / raw)
To: damon, linux-mm, linux-kernel
Cc: sj, akpm, wangzhigang17, liqiqi23, Zenghui Yu
The comment on top of `struct damon_region` clearly says that
For any use case, @ar should be non-zero positive size.
which is now verified in damon_verify_new_region() if the kernel is built
with DAMON_DEBUG_SANITY.
The WARN_ONCE() can be triggered if the mtier sample module is enabled
before node{0,1}_{start,end}_addr have been properly initialized, which is
obviously not good.
------------[ cut here ]------------
start 0 >= end 0
WARNING: mm/damon/core.c:217 at damon_new_region+0xf4/0x118, CPU#59: bash/341468
Call trace:
damon_new_region+0xf4/0x118 (P)
damon_set_regions+0xfc/0x3c0
damon_sample_mtier_build_ctx+0xe8/0x3a8
damon_sample_mtier_start+0x1c/0x90
damon_sample_mtier_enable_store+0x98/0xb0
param_attr_store+0xb4/0x128
module_attr_store+0x2c/0x50
sysfs_kf_write+0x58/0x90
kernfs_fop_write_iter+0x16c/0x238
vfs_write+0x2c0/0x370
ksys_write+0x74/0x118
__arm64_sys_write+0x24/0x38
invoke_syscall+0xa8/0x118
el0_svc_common.constprop.0+0x48/0xf0
do_el0_svc+0x24/0x38
el0_svc+0x54/0x370
el0t_64_sync_handler+0xa0/0xe8
el0t_64_sync+0x1ac/0x1b0
---[ end trace 0000000000000000 ]---
Note that the same issue can happen if detect_node_addresses is true, and
node 0 or 1 is memoryless. Fix it together by checking the validity of
parameters right before damon_new_region() and fail early if they're
invalid.
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
---
* From v1 [1]:
- take into account the detect_node_addresses case (Sashiko)
- based on mm-new (SeongJae)
[1] https://lore.kernel.org/r/20260608111534.264-1-yuzenghui@huawei.com
samples/damon/mtier.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/samples/damon/mtier.c b/samples/damon/mtier.c
index eb1143de8df1..3785b0c7ffb1 100644
--- a/samples/damon/mtier.c
+++ b/samples/damon/mtier.c
@@ -120,6 +120,9 @@ static struct damon_ctx *damon_sample_mtier_build_ctx(bool promote)
addr.end = promote ? node1_end_addr : node0_end_addr;
}
+ if (addr.start >= addr.end)
+ goto free_out;
+
range.start = addr.start;
range.end = addr.end;
--
2.33.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] samples/damon/mtier: fail early if address range parameters are invalid
2026-06-09 6:46 [PATCH v2] samples/damon/mtier: fail early if address range parameters are invalid Zenghui Yu
@ 2026-06-09 14:49 ` SeongJae Park
2026-06-09 15:49 ` Zenghui Yu
0 siblings, 1 reply; 3+ messages in thread
From: SeongJae Park @ 2026-06-09 14:49 UTC (permalink / raw)
To: Zenghui Yu
Cc: SeongJae Park, damon, linux-mm, linux-kernel, akpm, wangzhigang17,
liqiqi23, stable
On Tue, 9 Jun 2026 14:46:52 +0800 Zenghui Yu <yuzenghui@huawei.com> wrote:
> The comment on top of `struct damon_region` clearly says that
>
> For any use case, @ar should be non-zero positive size.
>
> which is now verified in damon_verify_new_region() if the kernel is built
> with DAMON_DEBUG_SANITY.
>
> The WARN_ONCE() can be triggered if the mtier sample module is enabled
> before node{0,1}_{start,end}_addr have been properly initialized, which is
> obviously not good.
>
> ------------[ cut here ]------------
> start 0 >= end 0
> WARNING: mm/damon/core.c:217 at damon_new_region+0xf4/0x118, CPU#59: bash/341468
> Call trace:
> damon_new_region+0xf4/0x118 (P)
> damon_set_regions+0xfc/0x3c0
> damon_sample_mtier_build_ctx+0xe8/0x3a8
> damon_sample_mtier_start+0x1c/0x90
> damon_sample_mtier_enable_store+0x98/0xb0
> param_attr_store+0xb4/0x128
> module_attr_store+0x2c/0x50
> sysfs_kf_write+0x58/0x90
> kernfs_fop_write_iter+0x16c/0x238
> vfs_write+0x2c0/0x370
> ksys_write+0x74/0x118
> __arm64_sys_write+0x24/0x38
> invoke_syscall+0xa8/0x118
> el0_svc_common.constprop.0+0x48/0xf0
> do_el0_svc+0x24/0x38
> el0_svc+0x54/0x370
> el0t_64_sync_handler+0xa0/0xe8
> el0t_64_sync+0x1ac/0x1b0
> ---[ end trace 0000000000000000 ]---
>
> Note that the same issue can happen if detect_node_addresses is true, and
> node 0 or 1 is memoryless. Fix it together by checking the validity of
> parameters right before damon_new_region() and fail early if they're
> invalid.
Thank you for this patch, Zenghui!
>
> Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
I think this deserves Fixes: and Cc: stable, like below.
Fixes: 82a08bde3cf7 ("samples/damon: implement a DAMON module for memory tiering")
Cc: <stable@vger.kernel.org> # 6.16.x
Other than that, looks good to me.
Reviewed-by: SeongJae Park <sj@kernel.org>
I applied this patch to damon/next [1] tree. We are now quite close to next
merge window. We (mm community) want to focus on making mm.git more stabilized
and therefore ready for the next merge window, rather than adding more changes
that are not really urgent. I understand this series is not really urgent,
because it is causing only DAMON internal weird behavior and one time warning
on debug kernels.
Hence, Andrew might not add this patch until next -rc1 release. In the case, I
will request adding this to mm.git after next -rc1 release. So, no action from
your side is needed for now. Let me know if you think this is really urgent or
I'm missing something.
[1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees
Thanks,
SJ
[...]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] samples/damon/mtier: fail early if address range parameters are invalid
2026-06-09 14:49 ` SeongJae Park
@ 2026-06-09 15:49 ` Zenghui Yu
0 siblings, 0 replies; 3+ messages in thread
From: Zenghui Yu @ 2026-06-09 15:49 UTC (permalink / raw)
To: SeongJae Park
Cc: Zenghui Yu, damon, linux-mm, linux-kernel, akpm, wangzhigang17,
liqiqi23, stable
Hi SeongJae,
On 6/9/26 10:49 PM, SeongJae Park wrote:
>
> I think this deserves Fixes: and Cc: stable, like below.
>
> Fixes: 82a08bde3cf7 ("samples/damon: implement a DAMON module for memory tiering")
> Cc: <stable@vger.kernel.org> # 6.16.x
>
> Other than that, looks good to me.
>
> Reviewed-by: SeongJae Park <sj@kernel.org>
Thanks!
>
> I applied this patch to damon/next [1] tree. We are now quite close to next
> merge window. We (mm community) want to focus on making mm.git more stabilized
> and therefore ready for the next merge window, rather than adding more changes
> that are not really urgent. I understand this series is not really urgent,
> because it is causing only DAMON internal weird behavior and one time warning
> on debug kernels.
Yup!
>
> Hence, Andrew might not add this patch until next -rc1 release. In the case, I
> will request adding this to mm.git after next -rc1 release. So, no action from
> your side is needed for now. Let me know if you think this is really urgent or
> I'm missing something.
I agree with you that this is not urgent and can wait for the next -rc1.
Thanks,
Zenghui
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-06-09 15:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-09 6:46 [PATCH v2] samples/damon/mtier: fail early if address range parameters are invalid Zenghui Yu
2026-06-09 14:49 ` SeongJae Park
2026-06-09 15:49 ` Zenghui Yu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox