From: SeongJae Park <sj@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: SeongJae Park <sj@kernel.org>,
damon@lists.linux.dev, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 5/5] mm/damon/core: avoid divide-by-zero from pseudo-moving window length calculation
Date: Thu, 19 Oct 2023 19:49:24 +0000 [thread overview]
Message-ID: <20231019194924.100347-6-sj@kernel.org> (raw)
In-Reply-To: <20231019194924.100347-1-sj@kernel.org>
When calculating the pseudo-moving access rate, DAMON divides some
values by the maximum nr_accesses. However, due to the type of the
related variables, simple division-based calculation of the divisor can
return zero. As a result, divide-by-zero is possible. Fix it by using
damon_max_nr_accesses(), which handles the case.
Note that this is a fix for a commit that not in the mainline but mm
tree.
Fixes: ace30fb21af5 ("mm/damon/core: use pseudo-moving sum for nr_accesses_bp")
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Note that this is for a patch in mm-stable that not yet merged into the
mainline.
mm/damon/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index e194c8075235..aa2dc7087cd9 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1665,7 +1665,7 @@ void damon_update_region_access_rate(struct damon_region *r, bool accessed,
* aggr_interval, owing to validation of damon_set_attrs().
*/
if (attrs->sample_interval)
- len_window = attrs->aggr_interval / attrs->sample_interval;
+ len_window = damon_max_nr_accesses(attrs);
r->nr_accesses_bp = damon_moving_sum(r->nr_accesses_bp,
r->last_nr_accesses * 10000, len_window,
accessed ? 10000 : 0);
--
2.34.1
next prev parent reply other threads:[~2023-10-19 19:49 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 19:49 [PATCH 0/5] avoid divide-by-zero due to max_nr_accesses overflow SeongJae Park
2023-10-19 19:49 ` [PATCH 1/5] mm/damon: implement a function for max nr_accesses safe calculation SeongJae Park
2023-10-19 19:49 ` [PATCH 2/5] mm/damon/core: avoid divide-by-zero during monitoring results update SeongJae Park
2023-10-19 19:49 ` [PATCH 3/5] mm/damon/ops-common: avoid divide-by-zero during region hotness calculation SeongJae Park
2023-10-19 19:49 ` [PATCH 4/5] mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation SeongJae Park
2023-10-19 19:49 ` SeongJae Park [this message]
2023-10-20 17:19 ` [PATCH 0/5] avoid divide-by-zero due to max_nr_accesses overflow SeongJae Park
2023-10-20 17:30 ` Andrew Morton
2023-10-20 18:02 ` SeongJae Park
2023-10-20 17:31 ` SeongJae Park
-- strict thread matches above, loose matches on Subject: below --
2023-10-20 17:23 [PATCH v2 " SeongJae Park
2023-10-20 17:23 ` [PATCH 5/5] mm/damon/core: avoid divide-by-zero from pseudo-moving window length calculation 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=20231019194924.100347-6-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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.