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 C0CDFC83F1D for ; Sat, 12 Jul 2025 19:50:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E20F56B00BA; Sat, 12 Jul 2025 15:50:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB0576B00BC; Sat, 12 Jul 2025 15:50:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C97F46B00BE; Sat, 12 Jul 2025 15:50:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AD21A6B00BA for ; Sat, 12 Jul 2025 15:50:29 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7FE2914028F for ; Sat, 12 Jul 2025 19:50:29 +0000 (UTC) X-FDA: 83656654578.01.00D3090 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf01.hostedemail.com (Postfix) with ESMTP id C095F4000C for ; Sat, 12 Jul 2025 19:50:27 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nlT5K1qi; spf=pass (imf01.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752349827; 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=msAi2sGmR5EKputWW+8hqbPGFvfrAcPc+rTF64AVr1CqMi5zjZtK0jF4005urOR76K+6Hc xc/XcV1g9yGQnutZ0fjJcDuTwcTpyk+PJk/YxvknxG0xY+xSR4bhThj8uvtAaZeD/vdCAt O/++Sv0bQg9WF2DzZxE/9PropM7dPJ0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752349827; a=rsa-sha256; cv=none; b=EZz218U8PBwNrIbVX4lQXyeOjyK+eMejv35nKZTFTKArgz+kIvq9oP9LSNXFoihWkIrJwD +lVyV1m379GKYEz8E2qn3NHGdu1PwmN9IaeCxJ7AxORdWyT5c18Sur6Z76iXLuKrDVIJJk MPhsCJljuqpKGDX9RamgNuJj5vfiOeA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nlT5K1qi; spf=pass (imf01.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id C56C246C57; Sat, 12 Jul 2025 19:50:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D780C4CEF7; Sat, 12 Jul 2025 19:50:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752349826; bh=8BmJeyRI+t+rJLAQd+/Sf188h6vX4h9leuX/fdJu7n0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nlT5K1qiBV0RHGAA/07WZGIywH1FpMj7f3h2LS1ztccSE95zqwui6wMnVj+hjadWa wmYVhMJ8J9fR7w6RwmDd3u2AIzufI7gimqcKwQlW/PNTfcIibHTFaicSG2bMMIb8IJ VIuXlbisNF8xHh5Yxa+cLuJU8U9s5TZfLbxmHLPmH4Y213HfYQVOdYIc6o8BG99Z4Y MfuixWL+Ds2olswgaCRAZobNECvnX4xrqFhOLLrBBHjfex6gldDrrJL7tcdmMHWjD1 8p/h7cn0NXMAzK310FxmhpTl9VUQc+SD65u7+oG8QPOFO0CH6Oig+MDeCDfMeFzx26 EAm7Dm8lIj/fg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 05/14] mm/damon/lru_sort: use damon_call() repeat mode instead of damon_callback Date: Sat, 12 Jul 2025 12:50:07 -0700 Message-Id: <20250712195016.151108-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250712195016.151108-1-sj@kernel.org> References: <20250712195016.151108-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C095F4000C X-Rspam-User: X-Rspamd-Server: rspam09 X-Stat-Signature: uxyjzonpbgdhrp9nfabxnnhwpbitjjk1 X-HE-Tag: 1752349827-750035 X-HE-Meta: U2FsdGVkX1/Po6cLm17cI3DXKgYLPT5kNvXq414SteFOfvgZ7vLZl+pivU+zNfHaGEzukJtikt9eOJFOdwvMuzSegAoUU1LMS2gYFa8HiTFFJ+nX2/thWvnYafkXopNVlRE6OL3Hg1a2dG5LPQGOC4ov7K7aqtePCs61pqUFrB36DnPsL6EwTzoxiCa7kLPEFvVRAAfj8VnU8pHk9fcjeYXIdKVDHObq5UPs/7rv+chlNmWLo5Ldv6J3SorSuCgXefOpfPZGZNR45XClZ2fRxYmPrNByuiai4swMj+/PODvOe/aXXHaLkQMo4b73j2fW7thsNrtREtFxY+WANqG8I+pEwMPinMioK5xH/0nqOixp/7ST/NQmXLrXJkSQLNL1Th98/U2wJDCizsZFz+8S3iCkOGfbi2rm6VRoM2r37KhAoYyMEoRvRUkvqCLffsaEGfhsEbULy2wcvP+g4SYYoouDROV6B3OSu98bhmh2xrOSUzs9tD7tfbzMncTTuVJ1Qzkc39iSR9sqILP6JZEj/1+49g/8DXFdbRBFvW3dkhUgRU2y0VAqdk3Bluea1xhpTJZtwQTAvPqI3usEXuk6RFwR+t6auqW1l7vCOWoi7AWnslLBCFcryX/7QE00A8xIOlP5IN+U/ySEEe4iCOZBqsjcc8aDn4fM5WwDW03L0dEOx8x5IT3M8Rzv95OarvaJ7GGXsso5zasXaxamemBLAa1PQiE6SFGFle/+2jiLLhaIRTQ0ncBA3hAoJSI4Wyh+5HIb4nJgaWzWNIBdMZobh21bbNGDwVHmBiQ6Hdpjphk1e4D2jX79YMpbiPLi7C3CX+T8gSBDK7LcNrdFPyDx/DFOLI3UNYVCjOlaziBPnnsb9hotGcnoPLY6AvDvwFroB4gw5FNUk3LMSV4IgxuZjxj+SyGm6Q7CQN9N0udV2eWFKOy+KUGAjpnlpUE79qtNDaaCN/zTnKv+aDqZ4qa 0hAgD02S Ua4usXudVoo3YZB2/SbsOCK/MSYJbwd7qsFWh+JoCb9/183iI20wygW6WVqzp6+fpB3yBUdH4eaN8ZSxIkOHyVIFQLMp9CfLkzZ09s50pixMEgrJcw1k9MLQNrtNH0cdShJ0gXPJX2pZQ/VnZecgTGKAHLcC9BPGCvxe/cdTv58j970HDYDFdHlFBWke7bInX7N7zcYym1NlN1z9u4/b/aMwEpa7USx8UMx1ov6flevsOoYZmO5sCkSXttDwTTvt0/O8i3FEBFRteDhL+CwJOViUOSA== 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