From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 376F6C7EE30 for ; Wed, 2 Jul 2025 00:08:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D15816B00CA; Tue, 1 Jul 2025 20:08:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CED1F6B00CB; Tue, 1 Jul 2025 20:08:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2A396B00CC; Tue, 1 Jul 2025 20:08:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B48DF6B00CA for ; Tue, 1 Jul 2025 20:08:52 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 695EB12460B for ; Wed, 2 Jul 2025 00:08:52 +0000 (UTC) X-FDA: 83617388904.30.8659054 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf12.hostedemail.com (Postfix) with ESMTP id DAC194000D for ; Wed, 2 Jul 2025 00:08:49 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; spf=pass (imf12.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751414930; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=G2NDrz1J9Qzw232iAyPHv4JEFL3XM5KMNE4oq+zOWHI=; b=zzOgxCqtGgTJ2bwcR1Xp8RTI4YaRr0PLA3/4Jbz25wEVUO6ba2qT2AGUrBIZZ8dHScE3bj jGMXm2g2r7gyz4U0LlyAlxsi4fY2a9tlxYN8uRQz1PlqqguADByKRiYpwUPtCTHmAJjeyR IKMhKuyEbWC5bW/yNTRWA8qoFnhmpF8= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=none; spf=pass (imf12.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751414930; a=rsa-sha256; cv=none; b=gNhtS6K+i5kOqVfBur+s49xp6V11cMjjOh66W/LbGX+sVv3oLPXSOsXQwyUizbF4E3RSf6 7i2cl0sQCgrTnc/+g9r6szlCAcQo7QRdPmAkg0wXUpPKOCtT+6ISoPMAklGOt3ZX+hz/h9 2Rk7pDIDR11oTlZ/C+aIPPT5YNha4a0= X-AuditID: a67dfc5b-669ff7000002311f-76-686478900130 Message-ID: <846357e0-8eaf-44a4-a9c4-3f1a6864a304@sk.com> Date: Wed, 2 Jul 2025 09:08:47 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: kernel_team@skhynix.com, damon@lists.linux.dev, Andrew Morton , linux-mm@kvack.org, Yunjeong Mun Subject: Re: [PATCH v2 4/4] mm/damon: fix divide by zero in damon_get_intervals_score() To: SeongJae Park References: <20250701170006.53864-1-sj@kernel.org> Content-Language: ko From: Honggyu Kim In-Reply-To: <20250701170006.53864-1-sj@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJLMWRmVeSWpSXmKPExsXC9ZZnoe6EipQMg83T5CzmrF/DZvHk/29W i3tr/rNaHP76hsmBxWPTqk42j02fJrF7nJjxm8XjxeaZjAEsUVw2Kak5mWWpRfp2CVwZu/YG FRwWqeibwtvA+Ja/i5GTQ0LAROLBupnMMPbTNfdZQWxeAUuJ50vug8VZBFQkPs6dxQgRF5Q4 OfMJC4gtKiAvcf/WDHYQm1lgJqPEm1M8XYwcHMICkRJb16iBhEUEFCXOPb7IChIWEjCS+NIk C1EtIjG7sw1sOpuAmsSVl5OYQGxOAWOJ6f/fskDUmEl0be1ihLDlJba/nQNUzwV05RI2iT3X l7BAnCwpcXDFDZYJjIKzkFw3C8mOWUhmzUIyawEjyypGocy8stzEzBwTvYzKvMwKveT83E2M wABfVvsnegfjpwvBhxgFOBiVeHhPXEnOEGJNLCuuzD3EKMHBrCTCyycLFOJNSaysSi3Kjy8q zUktPsQozcGiJM5r9K08RUggPbEkNTs1tSC1CCbLxMEp1cDocE3h0pzq7XpTLitxH1p9pKn1 Y0zN22/LxG+8Kp92mJNVoehEwBPzBXnfZqspTCo/+XPashiGWCvz4DNcMwUZZi27Wvjh+oS4 t9P6lHfY1JlWrIvr/z7frsF5Re2E0l9aNrkvP517U1euZ6hz7GJl4PH9N5zO+j/Uf2Mi86+t oemXv0b1iTcPlViKMxINtZiLihMBCOjP+2wCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJLMWRmVeSWpSXmKPExsXCNUNLT3dCRUqGwZeP/BZz1q9hs3jy/zer xeG5J1kt7q35D2R9fcNk8XvbCjYHNo9NqzqBxKdJ7B4nZvxm8XixeSajx7fbHh6LX3xgCmCL 4rJJSc3JLEst0rdL4MrYtTeo4LBIRd8U3gbGt/xdjJwcEgImEk/X3GcFsXkFLCWeL7nPDGKz CKhIfJw7ixEiLihxcuYTFhBbVEBe4v6tGewgNrPATEaJN6d4uhg5OIQFIiW2rlEDCYsIKEqc e3yRFSQsJGAk8aVJFqJaRGJ2ZxvYdDYBNYkrLycxgdicAsYS0/+/ZYGoMZPo2trFCGHLS2x/ O4d5AiPfLCRHzEIyahaSlllIWhYwsqxiFMnMK8tNzMwx1SvOzqjMy6zQS87P3cQIDOBltX8m 7mD8ctn9EKMAB6MSD++Bs8kZQqyJZcWVuYcYJTiYlUR4+WSBQrwpiZVVqUX58UWlOanFhxil OViUxHm9wlMThATSE0tSs1NTC1KLYLJMHJxSDYyddT8fb7UW2DHDY9/lL5G/f+ZkhScnPbm+ uv66kEtpuEi5QrOvcotTcJ6VzvzcZ3kuVT/uqd3fK3ZPWVfoakbV63s///KcqdE7Y6Xj4Cw3 M3xWzNeNrCZPg33qbqzhyfI6/E4zL7Fn26Ge2vbQVdtuvp21TMp94QE7HaM/6wIvPYqqnelY /EGJpTgj0VCLuag4EQDIWJ55XAIAAA== X-CFilter-Loop: Reflected X-Stat-Signature: wg973pdpfxf9tmux8eecfwiw7zerkgje X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: DAC194000D X-Rspam-User: X-HE-Tag: 1751414929-687009 X-HE-Meta: U2FsdGVkX1+V5zMfes9kaEqHl6IrKa6QwdW3j7rbCCoybwguMrOUlFCoMDfqemyUIjOoScxA8na+jmaZndTK+WbN4pYGmyO5g5pkcPtJLv9aEYlaluOV9JTtiZabXC/QLUAMiI7EVKNWRl+VSS5Fj/hdZdlA212SGKU1QVza7bL5lQXuNGPY9eQVG4ciYEgOeY+OI/g7hQePQ+2KBmR8AtvTyg+qqGukeEyuo2ukmFQp48tAvjCRT5oWAIH3eSN4XKpS5BUOGZBv4PwVDtydznnA0/5oNFwoGSLkZyyS5l3etaKKWbyxVWs3nb8lniYtjj/eu+hY9pzlVgen95am++/Gatdv4DLwC/Cf4BRe46FlElYR/e/Id6sjAL9M2K6EMPIe8HFAXQZZvhsqljKZeaNNKxDB51h8T6xLQLd+zCVoZw81dO7o6hfbuIX+yHottXqeStaoOLJN6gt1kgRqkMv57CuGgnDFiXXkl1vfZGzavib/llb5jEs+9V3CL7Pab0rFGX30MpyroI4LUMhFb0wL+A/wSn4816W1sSKh97iRySsBjhK3Nna22nKEKePsxVOvwPcbkDUh993P+HjxH0Gb5zi5ZFqC3UqwSrmRkvn4sDNu2IFwK4uRSfzEhww4WuKJnQmbB1VlN+cWwuJRogDbi6DrU9oq9wwgI8ZQVh7PGo9xw2k6PtJZUTCIqyUjbIHjsiWxWf9HReA3kqV+4UcctvgBPf2zqXVe9VLBK2NnxRkf16l6sdzVPZEJuTWPW8TYm5NXTL7xZc65vMA4slB5oZ1UgtVjHuyvnYHG0OYEKZlbNIo9j9jjnu4/hxKa9b2fCwCbLSIdG4JXZZdcBNtvAuP+dWfzIo24BMbzs12SEvRLnZMjXkoQaowx0nECFBsDPS8+Nr8wtKiwbTc8Ayp8DJyepyNeiHwPkCFGsasG53rh8Fcump9PnttgT7IEp/cB1LtzWuMXwlSL36R EULNSxk/ gYGvDBcNB3+cFyMTy0DWrq5xUjunGRWe6fIJyeqSnZPbe7GPS4t6WT4oyGQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi SeongJae, On 7/2/2025 2:00 AM, SeongJae Park wrote: > Hi Honggyu, > > On Tue, 1 Jul 2025 17:19:26 +0900 Honggyu Kim wrote: > >> The current implementation allows having zero size regions with no >> special reasons, but damon_get_intervals_score() gets crashed by divide >> by zero when the region size is zero. >> >> [ 29.403950] Oops: divide error: 0000 [#1] SMP NOPTI >> >> This patch fixes the bug, but does not disallow zero size regions to >> keep the backward compatibility since disallowing zero size regions >> might be a breaking change for some users. >> >> Fixes: f04b0fedbe71 ("mm/damon/core: implement intervals auto-tuning") >> Signed-off-by: Honggyu Kim >> Cc: Yunjeong Mun >> --- >> mm/damon/core.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/mm/damon/core.c b/mm/damon/core.c >> index b217e0120e09..e274a4d958d6 100644 >> --- a/mm/damon/core.c >> +++ b/mm/damon/core.c >> @@ -1448,7 +1448,10 @@ static unsigned long damon_get_intervals_score(struct damon_ctx *c) >> access_events += sz_region * r->nr_accesses; >> } >> } >> - target_access_events = max_access_events * goal_bp / 10000; >> + if (likely(max_access_events) > 0) > > This makes checkpatch.pl complaints as below: > > WARNING: Using likely should generally have parentheses around the comparison > #39: FILE: mm/damon/core.c:1451: > + if (likely(max_access_events) > 0) > > This is not performance critical part, so I think we can simply drop likely(). > >> + target_access_events = max_access_events * goal_bp / 10000; >> + else >> + target_access_events = 1; > > But, target_access_events could still be zero if goal_bp is zero or > max_access_events * goal_bp is less thatn 10000? > > I'd like to simply do the target_access_events calculation as is, and set > target_access_events as 1, if it is zero. Since this is not a performance > critical path, I think that's ok. Sure. I've just made it as you mentioned in v3. > > Also, in the previous version, we discussed the reproduction step requires > sample modules. But seems we can also reproduce this with the official DAMON > sysfs ABI by setting the intervals goal zero, and I just confirmed that. Let's > Cc stable@. I've cc'ed stable@ in v3. Thanks for your help! Thanks, Honggyu > >> return access_events * 10000 / target_access_events; >> } >> >> -- >> 2.34.1 > > > Thanks, > SJ