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 ABF28C83F09 for ; Sun, 6 Jul 2025 20:00:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 346CF6B03FD; Sun, 6 Jul 2025 16:00:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 27EC86B03FE; Sun, 6 Jul 2025 16:00:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 195356B03FF; Sun, 6 Jul 2025 16:00:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 07D6B6B03FD for ; Sun, 6 Jul 2025 16:00:33 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C2E4816022C for ; Sun, 6 Jul 2025 20:00:32 +0000 (UTC) X-FDA: 83634907104.15.4A3531C Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf17.hostedemail.com (Postfix) with ESMTP id 2A3014000B for ; Sun, 6 Jul 2025 20:00:31 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CNetGueO; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751832031; a=rsa-sha256; cv=none; b=q8gPObPMfbn4CoD+8ZCUTKk7S4KpIWMATR8DcCVoZtQUBLVCdLX31XfjWIlSnqeMUYJ2kj HDpwJ1T4xn9i9w+NY6ULD9vVJgY32se7FNOwPNkInKRjMZ/Y2k80uFQorvRn+Z85QtLtAL qk4qPhZrpFFy6GuI2Rb9JFGgxOaxlrY= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CNetGueO; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751832031; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5oFvxT8Y1we9N1HoDTjXtsQnANPuQWCV6pogRWrIGNU=; b=qomHJ9uNoJYfPSthJ8qX3z3r8WNMe2mBW2pxLKx0AwwjZzvjT7Tt//GbTtWvwVq9WdfGs2 cl3D+I4+gHw8fYyGgk5rESMdxTTI9Z4p6BGSHmfqVCivNJOCsDV9S+R/NskflvNwhjNzKk P1NpBQhU/spoxHYaLUV9xSzW1hLvlbI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 90112A53E1B; Sun, 6 Jul 2025 20:00:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39236C4CEF1; Sun, 6 Jul 2025 20:00:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751832030; bh=8BmJeyRI+t+rJLAQd+/Sf188h6vX4h9leuX/fdJu7n0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CNetGueOoHKanG9mUzlnRfLDtfMrit02JswGEmbInvJ85dfZl/Wf0abkAi/EZmchO Y0GloZ2cQ8lw+lC6rUb+L0UTl3brkJGcAxee2uX2JFxCuAb11Vj1bM/LfDhD/Yf25v nB8Pf4OwaBI+INgAcsZJDg8eybijqPzrNuJ35jTzUD38DKfJJrSZLWP6cgEDn5EGOC psjnjL+pVz0uwuTkfCti6qM9L6ky69AccMZ66DTZfpCVEt4HPx4rJmo1IOyaKWvs96 GmDv8ptuqKDffYWUaNgUXI19BZyVRWq8G2WGboOV5EUOAEib02fuql9ZLX2yfGUjrj wrT7Tgi3ymv1g== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 05/14] mm/damon/lru_sort: use damon_call() repeat mode instead of damon_callback Date: Sun, 6 Jul 2025 13:00:09 -0700 Message-Id: <20250706200018.42704-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250706200018.42704-1-sj@kernel.org> References: <20250706200018.42704-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 2A3014000B X-Stat-Signature: k8j5qksoktz31uhsjhuf37671im44mhc X-Rspam-User: X-HE-Tag: 1751832030-167152 X-HE-Meta: U2FsdGVkX1+RfqvEyL+myc1RSqrQ2hdb5vvEANuhEP7tq28puHwR55rE4fPeFTJ0F3XrCtMEqs7ktCnXxIRXC+l3g4z+ooBC/cBq2sOpFdwTTwfODjVVxgJtGmTWhIZHVaFb5YNM4JI0KBHP4zc6IAusqD2NLEKI4Jf81+shQjZf8Wpi8pELnBQ0UopehUhsVf5t3kIoWIMBAaFQr2ytIPKQEM22eDATw8JjviKZT4wJ88pAJFZd+mYFHRbu1SWMVz/MJ2YDwhFUFDk5PB2x3bQLCtIgyR8GgUoAWlV7eGhv1hSwQb4pf632oPi6HtRDyjWKtK97EKjymgbM0YIiAsTTuakNx/biXN5rgfsINkW7+t25H2VY6cukRkZkpiFv3ca7F9UWJ5JkSHm+Ryo9C4++MdcKWbZLErg9e4LIwxgDkdt2WorD6fuBYbEGC5qnYgtTZSnnSrz+NcS7hPHFLRI6I7wd1iKY4VjE7x7qC8XRtgU9xqEztD+ExXreE3KxfEN3ym9VvruH9tyrv99beLjGpzOB/BsG4dtqaWzoyJqXoyrjeD7goCCvaFmJYFVKwNC2iDehNwZEn5chdkdJFtpkM+p23W4CS2NY7X8JvLN85vHnvp249mnNy6OSzl01/Cq72yQpgRDdC7sYCqZCxT1yQk6PO79ItnQC/N9OKO9oIX127Sad92IY7AdDJNQcc+LSoEwyh3yXUxgjkwz/WSMyNy8z2iw9S4hvjEN/em3wXXSvoWM/x0Wv04q5TpV7PzBthQ46hwxzC+WkVDHDiG1GwfE9RtOBVrzvf0JeegqUi7IgNI8jN6me8EnTpbMG5NoRXHmQJHYw0f6J+y8jNAg2U9PpFlBIfT9OpB4PtOiTlHqMfb/oi3H7MOlnun626fRbqjgjU1Wbl29BtghYnFLUXd9AYzZsnGC1AwtTSFF+PWXUNO58ylwkGRVUN2bqjFkxrwDBMWO1aY1esAm I5b3lftd 148LtRt65myo/Fl5m1K17LIej2swZe0zAN8zZn4zwhPIAkaHOOH9hpWDby9aYtDJJVnvuS4bTphcfQy9+FMZ5uD0s1A8bsP2m5cr58hrWtQKSrswz9OWiHrLi5K2iFjzbCq7gYm41h1YJPrOEyU9NbxHDTfhfGlfrwPjloiH3HUYJvamaYbmsiYgFxIfPHSjucdArF+kldQrtz/XQAcD9uMmS3n/hsj77YTQg1wdYmrPiaQGrIfr3RJRVVrsfOLKJDuiugpJ2apFz34Q47hjn2oG2WA== 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: DAMON_LRU_SORT uses damon_callback for periodically reading and writing DAMON internal data and parameters. Use its alternative, damon_call() repeat mode. Signed-off-by: SeongJae Park --- mm/damon/lru_sort.c | 70 ++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c index dcac775eaa11..621f19546596 100644 --- a/mm/damon/lru_sort.c +++ b/mm/damon/lru_sort.c @@ -230,6 +230,39 @@ static int damon_lru_sort_apply_parameters(void) return err; } +static int damon_lru_sort_handle_commit_inputs(void) +{ + int err; + + if (!commit_inputs) + return 0; + + err = damon_lru_sort_apply_parameters(); + commit_inputs = false; + return err; +} + +static int damon_lru_sort_damon_call_fn(void *arg) +{ + struct damon_ctx *c = arg; + struct damos *s; + + /* update the stats parameter */ + damon_for_each_scheme(s, c) { + if (s->action == DAMOS_LRU_PRIO) + damon_lru_sort_hot_stat = s->stat; + else if (s->action == DAMOS_LRU_DEPRIO) + damon_lru_sort_cold_stat = s->stat; + } + + return damon_lru_sort_handle_commit_inputs(); +} + +static struct damon_call_control call_control = { + .fn = damon_lru_sort_damon_call_fn, + .repeat = true, +}; + static int damon_lru_sort_turn(bool on) { int err; @@ -249,7 +282,7 @@ static int damon_lru_sort_turn(bool on) if (err) return err; kdamond_pid = ctx->kdamond->pid; - return 0; + return damon_call(ctx, &call_control); } static int damon_lru_sort_enabled_store(const char *val, @@ -288,38 +321,6 @@ module_param_cb(enabled, &enabled_param_ops, &enabled, 0600); MODULE_PARM_DESC(enabled, "Enable or disable DAMON_LRU_SORT (default: disabled)"); -static int damon_lru_sort_handle_commit_inputs(void) -{ - int err; - - if (!commit_inputs) - return 0; - - err = damon_lru_sort_apply_parameters(); - commit_inputs = false; - return err; -} - -static int damon_lru_sort_after_aggregation(struct damon_ctx *c) -{ - struct damos *s; - - /* update the stats parameter */ - damon_for_each_scheme(s, c) { - if (s->action == DAMOS_LRU_PRIO) - damon_lru_sort_hot_stat = s->stat; - else if (s->action == DAMOS_LRU_DEPRIO) - damon_lru_sort_cold_stat = s->stat; - } - - return damon_lru_sort_handle_commit_inputs(); -} - -static int damon_lru_sort_after_wmarks_check(struct damon_ctx *c) -{ - return damon_lru_sort_handle_commit_inputs(); -} - static int __init damon_lru_sort_init(void) { int err = damon_modules_new_paddr_ctx_target(&ctx, &target); @@ -327,8 +328,7 @@ static int __init damon_lru_sort_init(void) if (err) goto out; - ctx->callback.after_wmarks_check = damon_lru_sort_after_wmarks_check; - ctx->callback.after_aggregation = damon_lru_sort_after_aggregation; + call_control.data = ctx; /* 'enabled' has set before this function, probably via command line */ if (enabled) -- 2.39.5