DAMON development mailing list
 help / color / mirror / Atom feed
* [PATCH 6.1.y] mm/damon/lru_sort: avoid divide-by-zero in damon_lru_sort_apply_parameters()
       [not found] <2025091308-affix-ungreased-9889@gregkh>
@ 2025-09-14  3:28 ` SeongJae Park
  2025-09-14  3:32   ` SeongJae Park
  0 siblings, 1 reply; 2+ messages in thread
From: SeongJae Park @ 2025-09-14  3:28 UTC (permalink / raw)
  To: stable
  Cc: damon, Quanmin Yan, SeongJae Park, Kefeng Wang, ze zuo,
	Andrew Morton

From: Quanmin Yan <yanquanmin1@huawei.com>

Patch series "mm/damon: avoid divide-by-zero in DAMON module's parameters
application".

DAMON's RECLAIM and LRU_SORT modules perform no validation on
user-configured parameters during application, which may lead to
division-by-zero errors.

Avoid the divide-by-zero by adding validation checks when DAMON modules
attempt to apply the parameters.

This patch (of 2):

During the calculation of 'hot_thres' and 'cold_thres', either
'sample_interval' or 'aggr_interval' is used as the divisor, which may
lead to division-by-zero errors.  Fix it by directly returning -EINVAL
when such a case occurs.  Additionally, since 'aggr_interval' is already
required to be set no smaller than 'sample_interval' in damon_set_attrs(),
only the case where 'sample_interval' is zero needs to be checked.

Link: https://lkml.kernel.org/r/20250827115858.1186261-2-yanquanmin1@huawei.com
Fixes: 40e983cca927 ("mm/damon: introduce DAMON-based LRU-lists Sorting")
Signed-off-by: Quanmin Yan <yanquanmin1@huawei.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: ze zuo <zuoze1@huawei.com>
Cc: <stable@vger.kernel.org>	[6.0+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 711f19dfd783ffb37ca4324388b9c4cb87e71363)
Signed-off-by: SeongJae Park <sj@kernel.org>
---
 mm/damon/lru_sort.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c
index 98a678129b06..61311800abc9 100644
--- a/mm/damon/lru_sort.c
+++ b/mm/damon/lru_sort.c
@@ -203,6 +203,9 @@ static int damon_lru_sort_apply_parameters(void)
 	unsigned int hot_thres, cold_thres;
 	int err = 0;
 
+	if (!damon_lru_sort_mon_attrs.sample_interval)
+		return -EINVAL;
+
 	err = damon_set_attrs(ctx, &damon_lru_sort_mon_attrs);
 	if (err)
 		return err;
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 6.1.y] mm/damon/lru_sort: avoid divide-by-zero in damon_lru_sort_apply_parameters()
  2025-09-14  3:28 ` [PATCH 6.1.y] mm/damon/lru_sort: avoid divide-by-zero in damon_lru_sort_apply_parameters() SeongJae Park
@ 2025-09-14  3:32   ` SeongJae Park
  0 siblings, 0 replies; 2+ messages in thread
From: SeongJae Park @ 2025-09-14  3:32 UTC (permalink / raw)
  To: SeongJae Park
  Cc: stable, damon, Quanmin Yan, Kefeng Wang, ze zuo, Andrew Morton

On Sat, 13 Sep 2025 20:28:45 -0700 SeongJae Park <sj@kernel.org> wrote:

> From: Quanmin Yan <yanquanmin1@huawei.com>
> 
> Patch series "mm/damon: avoid divide-by-zero in DAMON module's parameters
> application".
> 
> DAMON's RECLAIM and LRU_SORT modules perform no validation on
> user-configured parameters during application, which may lead to
> division-by-zero errors.
> 
> Avoid the divide-by-zero by adding validation checks when DAMON modules
> attempt to apply the parameters.
> 
> This patch (of 2):
> 
> During the calculation of 'hot_thres' and 'cold_thres', either
> 'sample_interval' or 'aggr_interval' is used as the divisor, which may
> lead to division-by-zero errors.  Fix it by directly returning -EINVAL
> when such a case occurs.  Additionally, since 'aggr_interval' is already
> required to be set no smaller than 'sample_interval' in damon_set_attrs(),
> only the case where 'sample_interval' is zero needs to be checked.
> 
> Link: https://lkml.kernel.org/r/20250827115858.1186261-2-yanquanmin1@huawei.com
> Fixes: 40e983cca927 ("mm/damon: introduce DAMON-based LRU-lists Sorting")
> Signed-off-by: Quanmin Yan <yanquanmin1@huawei.com>
> Reviewed-by: SeongJae Park <sj@kernel.org>
> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> Cc: ze zuo <zuoze1@huawei.com>
> Cc: <stable@vger.kernel.org>	[6.0+]
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> (cherry picked from commit 711f19dfd783ffb37ca4324388b9c4cb87e71363)
> Signed-off-by: SeongJae Park <sj@kernel.org>

FYI, the commit was able to be cleanly cherry-pcked, but seems caused a build
error.  This patch fixes the build error.


Thanks,
SJ

[...]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-14  3:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <2025091308-affix-ungreased-9889@gregkh>
2025-09-14  3:28 ` [PATCH 6.1.y] mm/damon/lru_sort: avoid divide-by-zero in damon_lru_sort_apply_parameters() SeongJae Park
2025-09-14  3:32   ` SeongJae Park

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox