From patchwork Thu Mar 6 17:58:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005059 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 44BD0C282DE for ; Thu, 6 Mar 2025 17:59:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D8B4280001; Thu, 6 Mar 2025 12:59:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 88727280003; Thu, 6 Mar 2025 12:59:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7796B280001; Thu, 6 Mar 2025 12:59:16 -0500 (EST) 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 4B22E280003 for ; Thu, 6 Mar 2025 12:59:16 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 588841221E1 for ; Thu, 6 Mar 2025 17:59:16 +0000 (UTC) X-FDA: 83191887912.18.7C94453 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf19.hostedemail.com (Postfix) with ESMTP id B58E21A000B for ; Thu, 6 Mar 2025 17:59:14 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=r2YlYirJ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283954; 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=6meF8p//GTdk7y89ltTVBvyIzIETU8aeH7iQN7taErY=; b=kv4ejhbyZLybN6AZuRCANGWh0HaUVcC83ahyjkL3hJDgmda08lcLp2pBSu+78mkduMUxgN InZ4LG9ys+m9obrFY2gVyWgBqXp+U8V0WyLjIvrZhjWSvmvclM9Lo2W//EPYHLuAmFTDBp F7J44bewtd4NDxrBRgDMIcLLhS5hwec= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=r2YlYirJ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283954; a=rsa-sha256; cv=none; b=f+SiPHh4V4b2UHBhJ4G9+OI/ZsKjvrGB3Z6ZBf2rJI0mLutIH/oQbjUAzZDk0tb50jv/DN XkSBFveyXEDcxmZUImx9dTDkqBlM/geXPfXRCUyPOi6IZS5XoLea4Asud5KXNKhPUR5ahv sDoKJWgxJn03Mg+9Iz5/pPpa9WoG724= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 38B615C5968; Thu, 6 Mar 2025 17:56:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 891C2C4AF09; Thu, 6 Mar 2025 17:59:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283953; bh=s3K1j/KtFWFlfZ4nT5daB6KeJd16T5I6BVsvRI8TnBk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r2YlYirJHFp/wJtVUL7tffYgMhDwY2Ik+mZkg4cYEO2+Cp0OBou2I0OjZMh+T4caT ypz2HqLqrukRM8jMWJkTsEofWtapkCQog8j6CZJcSiDFoik7gQASwHwRfMlN/kSN06 MDivW6nDcqzWWg+Xnn68/8X5BHHcGc9m2FUz1CuKZghmvpUD+rZNwYLdN9yq/CX+sF AstH6vhqHhTlpRiuh593cNXH7v0O3dnKFQqhnnUudFiGGrONwzfjrrM79OGKegO2g2 zmyK+gfhK+3oHGsyKk7aTz9wVbF/zubx1wZW7wku1tS9NSPtyLwvcSi8633R6LJdFc ZE3c5WwcJUyXA== 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 01/13] mm/damon/sysfs: validate user inputs from damon_sysfs_commit_input() Date: Thu, 6 Mar 2025 09:58:56 -0800 Message-Id: <20250306175908.66300-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: B58E21A000B X-Rspam-User: X-Stat-Signature: 1ow351ssy49e3eu4x199zp5h8cex63nn X-HE-Tag: 1741283954-395182 X-HE-Meta: U2FsdGVkX18O/LhG/o2Q/vIPNdRw++QpMd7fPjyd6/aa9AablKlQ8ucQL1/u59SGB6oBkYpduRVym+gioZyaYJFSQR5NY3byKosFRx2B1QDtCMHegYX3pKocVst/2BhfJPdFo4+mUE3cqRDj/xkDYDnbXJoA7MhV/H1SDObqSb07MoeYzBAvPWv0wBzkRD/AB77+SOMl8aahjbIVvQKB7T2kbAz1XPFNvrCbrVBxaXE8xSdMaX3iH6JJaGl9mXKPDEw2tRotQVoNXFjwfmSHS8ytQ9xuAdY8ZnmbWAHsjbXMb6JMehQ/CGLMuQ360l0m7nQJ+qd8lkY17+LUk/x+juZwVKW4CKJKTG8dAZSzyHSZu5F5xOvFsHTQRWuF87GLqR1UtiYLfROXe3EIGMFB6IncCFFqtZru7xDAK7U19TOSNR1K+4uVlp+HvlolJbR709mX+QkVOb6fym6B5WEjZi5b4ONMqOI3XNxuW4g7SSR8ZqFT8mQHRR+Q9XywDfWlfteVQ49VP5euhTPyqyJ14XX2As+6zQTWVLA0ZWyYrwvizcNBc6WC02bDXDoDnyRTiK1/e/OWu1d54mG7r2gqGuRl6YNx9uRnKm9ZcxourGmldwb/1Nn9s94od65oBN6lXIgPNWzeZ0QGCiUgw636LK4s3cWK+3qSBRzw8znQBGAtv/P6KLMV6UmBHSEoUUjG6RbPsabCXGsMj+Ei670nzyb5VsOjua0GqIJFiPbyTL+W6Wgq5IH/X3wMt13zsktRDj9TeLIjPngs9eDmkL84geAuEVhxeoVyj127IewYK5wJZtMRWb0Kc/xhyGcpBrsxGqD3t1tN7FusnHzX3lZpBCEjudTjtxD7ILv14DQ+QC367lxKPC6m7kAPQSnt3UDqpdnle31wwDBBcnMcpNrQLXP+InDqKD1oY/803+uWNLvUfwR5blFuqsHM5KfdnB1mKIcsLkV3Brjpk2HsPSS yqJHktFk JAsnak41UE9P2q8deBwTDDTwi0Xv/V90gTx81W29BA4ECj4KUZSyQQ3XOJF46ANrl5F7bMi7zl45vmB+6n3fXYwKFoodXCM1hN79Lc9toNwyU4YXM2JzyzQMgm55euqcY/Sxh0KKfCZ6aYMT00oERtLr0Jb9vtZzPe11D/oPvWDXvqhhjQk9r1kw/lvZXOPH4rG9r3wOSbX6wmx4K0rWcmWGJPM7aXnKZSbavk2IaA6qo3weELjkd1YYCX6cNCTh4FX0gJKex7eiz7c0WkDs26/YXHQ== 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: Online DAMON parameters commit via DAMON sysfs interface can make kdamond stop. This behavior was made because it can make the implementation simpler. The implementation tries committing the parameter without validation. If it finds something wrong in the middle of the parameters update, it returns error without reverting the partially committed parameters back. It is safe though, since it immediately breaks kdamond main loop in the case of the error return. Users can make the wrong parameters by mistake, though. Stopping kdamond in the case is not very useful behavior. Also this makes it difficult to utilize damon_call() instead of damon_callback hook for online parameters update, since damon_call() cannot immediately break kdamond main loop in the middle. Validate the input parameters and return error when it fails before starting parameters updates. In case of mistakenly wrong parameters, kdamond can continue running with the old and valid parameters. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index ccd435d234b9..87e4c6e3614e 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1449,11 +1449,11 @@ static struct damon_ctx *damon_sysfs_build_ctx( * damon_sysfs_commit_input() - Commit user inputs to a running kdamond. * @kdamond: The kobject wrapper for the associated kdamond. * - * If the sysfs input is wrong, the kdamond will be terminated. + * Returns error if the sysfs input is wrong. */ static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) { - struct damon_ctx *param_ctx; + struct damon_ctx *param_ctx, *test_ctx; int err; if (!damon_sysfs_kdamond_running(kdamond)) @@ -1465,7 +1465,15 @@ static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) param_ctx = damon_sysfs_build_ctx(kdamond->contexts->contexts_arr[0]); if (IS_ERR(param_ctx)) return PTR_ERR(param_ctx); + test_ctx = damon_new_ctx(); + err = damon_commit_ctx(test_ctx, param_ctx); + if (err) { + damon_sysfs_destroy_targets(test_ctx); + damon_destroy_ctx(test_ctx); + goto out; + } err = damon_commit_ctx(kdamond->damon_ctx, param_ctx); +out: damon_sysfs_destroy_targets(param_ctx); damon_destroy_ctx(param_ctx); return err; From patchwork Thu Mar 6 17:58:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005060 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 4F3C9C28B24 for ; Thu, 6 Mar 2025 17:59:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD623280004; Thu, 6 Mar 2025 12:59:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D5F93280003; Thu, 6 Mar 2025 12:59:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BDAC2280004; Thu, 6 Mar 2025 12:59:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 9D6CB280003 for ; Thu, 6 Mar 2025 12:59:17 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 85E29A95EB for ; Thu, 6 Mar 2025 17:59:17 +0000 (UTC) X-FDA: 83191887954.25.F045AFA Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id E17FD120003 for ; Thu, 6 Mar 2025 17:59:15 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IcOdR4Zg; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283956; 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=dCfnsqS6jzBkHSZyCxebsSCUXQnWSuuSl7leVJQE7ss=; b=wZvkhkKLtwKuMVsguSfMhNj9YAYq5Cc8V70qqgENCk2Zdtx553k2M6meC1srwLXG6/MDD+ Q4ZFNc/k91IOAwEPdOyJAalJlTMJOQwuO/DN2uVoi2rFaCG0xjXBAt9+yQ0zmd5JMlXbNC /vlPp3j6PLO4O8PZIuqMZauUtrRQw6Q= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IcOdR4Zg; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf29.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283956; a=rsa-sha256; cv=none; b=xdPexVkTRUpsUQgm7qVQpOKc6l2R4Mzi1MdFTZPJW+dbMmdkTokZFQW4G2+DvSihof60SF 2ATjFD8pmDV5Q+k8Bc5c5MscFJOOB9KOy626HjdZYIy4MMEudSX6k9i5y+diqqBES4rAJw JyBEnoA3vM52TeEpTpoEbLfszOb314k= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 5CD065C599E; Thu, 6 Mar 2025 17:56:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AEA6DC4CEED; Thu, 6 Mar 2025 17:59:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283954; bh=6yhiLeZVnkzlh7XNHP1rZ66eAWt0hQYEE7Tzfoyu2CA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IcOdR4ZgX3pF0zydkdFYbvcNF8I6BWC4h0hLsZ4eAATAfrwMOQ8iPaGtVgc2B78JK ndPixVzJSQS3l48cnI+td3Sz0FbmKXrIUocmqDhFloYJIoyUliNhCM4MKvVov0a9u+ yOc7JlG8NHMx1bE7fl73nGp5PkU5AY/BblnWeivpN4h8qlrhha5n8LS2Gh9+U0xqI0 RxsI/AxsEpEIBZjnWOTsgdv9pik+TtS7FumTIOnWaCUTo5rL2PmROIPb18mbZAdSNl w9Vy+uFxq+f3VfdpjXtjZVCUlBS0J8dOBwGtsIdEnFk6d+EftvapsfFgk5EVOLq+QV aw5oOYQqHKVdQ== 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 02/13] mm/damon/core: invoke kdamond_call() after merging is done if possible Date: Thu, 6 Mar 2025 09:58:57 -0800 Message-Id: <20250306175908.66300-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: E17FD120003 X-Rspam-User: X-Stat-Signature: 6sck84qwaukpobrgirzzto3qd9ahanrm X-HE-Tag: 1741283955-327700 X-HE-Meta: U2FsdGVkX19pnrEb2dQjiW3iqE1WBoQ6SVd9lDkOFOb/RhtSD2VBlv0wBmCbHUidLoZr7adrvAnfRYt+BNVgHaayJz8sLhfoVgmUGUeaZKO1ZZuXbF4Hegl6I23+XK2NbzgFmxPDSxaWtRqRHLWXvcm4sETquVt8p9FwOdMYK+EMDeda3aMXCnflTJUB+2Y8V/juWwn8EbIlQS1Xyk42ZjUJNrv3LLqPeEw7Y/d/xoL1a38abitHJCgJAgKt706rs6/kHoZ0cTDj7y93Trl8pG54V4RX3WjNzdl9zLAWToZNRa/ZlXc3AhTmRg291H5nmKa47KBCO9hZZ4opoRaxWbSlrteo+wHV16Dhq1AcY3GKNdlS6x5RdHkrr7X8Bm+emjyciOm6n8rB9EA8NKmbr1hkZMYjBgCD9kX3s+uuQLGpT1EouuxeKagsYNXPrPD5SBOzHLKDWkrQEmcE+bFSxCO9rRMHU6YE8SAvRlUM8PAZfqyzLe8gs5LDfOfd6ffg+5BpJ6XnYAJnmYwa05UDROagIUlKDaD+++QZa6BMO0Uq3JqSFRBublZUoeIE/Fkh8XWYE5HxDL0NmAYHKrVD8bJUfzpmWvkFDdl3Uph8m986ZrdR2Wf8zYXbdbNLpYSnZ5bFOV3RW2rvtSdBckQ5sGhp/AC+Vh9XFY8VGRukJlje36YZ6hd19uyaFdvQ+qML0eHD3G8XwVJVxIJ3wJCumrpwKbORhjsJKyBYJa0YfSRV1L9c/g34/HWJqY00E8oqJESyF1bpymOsVkS1/DuKfD22ItHMEQpzTjGrMpo17Da1lxBkUtDR97mRUh3hXAglaV7fsbheO3Gyjq/re/hsgVySQe/1jCPPFaI4UTVlIS9GLVoSSREYkCzFb1ALk24B7w4eoUKFz7dYKi41A6n92hfF4M3YvkoNxXJ/geezwvCKhC44D7XEauN5zK/NkiIKRGXVc4JlkvUh8in4LX+ 2vQ/P84x Um9toCJU6PERLKkcOnianfm0rR/ljf9XKEdRmNcM3NiZPm5G9Kw+pDTUQ1/gpLW8oo6koCS68L8C2WFAVHSo8WsyZNIeIuP1KKzy0ejXpjUHX8nG6p9MNacXZQBZK/uLuy4XOwPTOIpFry3g/d7jO+SQevWRPGW6zW13LJSQT3oTNEoz6Gy8gX8+5KhtgpWxjkPkZC00VS//g+jglJtCd9fDmhDqnjgRLhknBvJ+eV3KBTmlswipTafsBWDR8RbWAxLaEuYcqo7I7GBj9WppnhkpijA== 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: kdamond_call() callers may iterate the regions, so better to call it when the number of regions is as small as possible. It is when kdamond_merge_regions() is finished. Invoke it on the point. This change is also aimed to make future changes for carrying online parameters commit with damon_call() easier. The commit operation should be able to make sequence between other aggregation interval based operations including regioins merging and aggregation reset. Placing damon_call() invocation after the regions merging makes the sequence handling simpler. Signed-off-by: SeongJae Park --- mm/damon/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index d4fc2c907cfc..0f359b4ebf1a 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2420,7 +2420,6 @@ static int kdamond_fn(void *data) if (ctx->callback.after_sampling && ctx->callback.after_sampling(ctx)) break; - kdamond_call(ctx, false); kdamond_usleep(sample_interval); ctx->passed_sample_intervals++; @@ -2438,9 +2437,10 @@ static int kdamond_fn(void *data) } /* - * do kdamond_apply_schemes() after kdamond_merge_regions() if - * possible, to reduce overhead + * do kdamond_call() and kdamond_apply_schemes() after + * kdamond_merge_regions() if possible, to reduce overhead */ + kdamond_call(ctx, false); if (!list_empty(&ctx->schemes)) kdamond_apply_schemes(ctx); else From patchwork Thu Mar 6 17:58:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005061 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 1250DC282DE for ; Thu, 6 Mar 2025 17:59:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B2D1280005; Thu, 6 Mar 2025 12:59:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5683F280003; Thu, 6 Mar 2025 12:59:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 40AC6280005; Thu, 6 Mar 2025 12:59:19 -0500 (EST) 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 16D56280003 for ; Thu, 6 Mar 2025 12:59:19 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id EB983B9CFB for ; Thu, 6 Mar 2025 17:59:18 +0000 (UTC) X-FDA: 83191887996.09.11DFF73 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf09.hostedemail.com (Postfix) with ESMTP id 0D9FA14000F for ; Thu, 6 Mar 2025 17:59:16 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OAqr6+Ts; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf09.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=1741283957; 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=O6kq1ibczYmaxIAZXqZQMIBC2RDQARmqTNydRhx56cg=; b=p67212R2Xpo4+54eaJliBRqxtmg9S4gLRzQj5wJJDTLSUZzIROt3FWvKdOAM+L6luAba9t UlnizA1hlmFAj07bZnW9v6JEDUtwu48T0IknFp4ymGljz2RuR72z0YtY0s5wndkBZZ2jYC LmAseCFLzmXTHWGoB9B5z3qvNUAzbNM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283957; a=rsa-sha256; cv=none; b=8Pu6NQwq/lYzN/u3FLTp5GWb6zqHMWkuXkq3uizlzAicbGeoOKDBtLIPz8AY9bijegxbxL ol4xPEm8tYtAXANgAxLljNagRKxMe/UesaVTiDaeHZXBQuM9xforsGHZnN8+/bEJtxEOsL 6zB1IfIRLE2yh0wae8ULaVxIU42sJro= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OAqr6+Ts; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf09.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 8E44AA450DD; Thu, 6 Mar 2025 17:53:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6772C4CEEB; Thu, 6 Mar 2025 17:59:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283956; bh=xWjhCxNDcVvgRyq+QB/ZEVdI2Y9i2Y/Y3beU15kO7Bg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OAqr6+TsOPNYIpJLR2VqTCMMLcMDQrYmEIqMUWvCJAJiKhrVo5H30b4CCRxLVnSJk GJWKg6sOMW+nVChnR6VIdqyq2KagbdswAvM+w+vRrNbmMiT6d45hmb0rcGfUEUzQxV gS+zjda5aMT7X5IB9FReABTZAdT3IGynshnJXABmCvsmM+1vIxpdRq7IdhAVT3EJ58 lDRPM1awE5pI6M8H+GTXvxm1Abob0R0yBi3E7IWDl+QhcFXVLarK7m4vrN6GbXipXV dfi6cFKhw3lt+34rTPZdYO7DOUMFnxUoefthMnPoVcquiy0SQCMZ+4xo2jyAu1geEr 3PcvV0K/H7SQg== 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 03/13] mm/damon/core: make damon_set_attrs() be safe to be called from damon_call() Date: Thu, 6 Mar 2025 09:58:58 -0800 Message-Id: <20250306175908.66300-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 0D9FA14000F X-Stat-Signature: 3zpijoqud1bwfmtcon9shfgu99kderq9 X-HE-Tag: 1741283956-810428 X-HE-Meta: U2FsdGVkX1+GHUgqEw6wZZwIS/U4kiVfwJ2tewe6qFyABaX8XShAfuTmsPiRZhOHbbCO2Aw8anPe+XrAXTJtQjCtd715U4VmKLsf118fg/wWaz1rt2+rQqVfLmXg23TrRO6Fcrukw5Lnu+ypZupVniUBz3E4LvRuwAUMVUWeWWqNKOn2mJKzEevrWQBsFeMXvhNS17qZihPi9wRycPJQgp8EPS/cpGXq5f2bVf7pj0FlJ88wE586Kd7lppzjOcMd/9+K78oK71dvDX3CWpLKSIxA/VlUu+mglxAvO86UTfhJfEWU3KzHN6fPDUC5+gslHlgEUjklEJ5Cpuvvl/pFodC7XBYFjc2XfnwXqXLxDHyi3XNnr+rbKKG6fgcSuP3emJFm16YxihBh+9Y3vcpPqhRvo0UWLocHhtuSV6bn3Y5Td4YEkTzxo6LjH0LDOOHUQdh+mxVy/eNaU0z3EVtfW+Y9Tf8FfWc9Jo6rx3OMsrcL0f4mu/ZCxjWTTXMlA5f8Wwk2gw3i57f3dtBwOw7tJgOdqypdjFmyf8E9M07tu/tGKdbcxHeVceGEqfexsyu5801s6CcYDdnAzDpfoAvYn7DrVoTu04M76qh6d5PAe30F4fGtPpPdns9RZwU6XGEiO+jZhjulCBM2sG/+7gZlYS4vPRSJ8ph7vnnB+R/fvx5jGyOSFRZFcxLsVpGY3EFz36huAaUdS83QDPm+UC2bLrODwIH0u4VEqkyyAjP/dC4KsKfauLUP3968Nfb47DPRAxKJvisQTZ6vP2cnQglUqjtrRkKWLD3hq2ZiNgNXtT1i1za+jb1TV33K8XfWtCfXeTRW0nMG07152eF2KJkq/7hMSKgDntpjSIQUwzfblhJTCNAqfWNK5RjAaC9InjXNGS3Gpe2YfuZaajZSK+r2SdF80uVrsFh1exy81h7q+YmPnYyizQlLDZ2jrA6BbhM54oAG2UP9XTSvi+kneQc 944uCN1g xQxllzLVIoFsCDyJGop+IQTW3ccpYzNEGLiKAzNfc4kRiTIl4ZX9BYLsn+hm94FMU4+y2Drc5zJYzfBXCaHyS4Qfh3Iwnhlm2jTWqvdRlLBZO4YicaEFMR78y8UdvFeSHCRvME8pHNcPgZdV/SIVLDj5DiFcXQ2/Gl03DVBiu04wDR+E2uHUTiTju8FOUpkss/yULj1UtnBBajDuHMNNGSje7wK6IE/NkErLJqVK0Wrh6gEOaY8xVWQsF/kpZj/QiwL61IhNyZ2SwUz1KvLSrdrfshQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Currently all DAMON kernel API callers do online DAMON parameters commit from damon_callback->after_aggregation because only those are safe place to call the DAMON monitoring attributes update function, namely damon_set_attrs(). Because damon_callback hooks provide no synchronization, the callers work in asynchronous ways or implement their own inefficient and complicated synchronization mechanisms. It also means online DAMON parameters commit can take up to one aggregation interval. On large systems having long aggregation intervals, that can be too slow. The synchronization can be done in more efficient and simple way while removing the latency constraint if it can be done using damon_call(). The fact that damon_call() can be executed in the middle of the aggregation makes damon_set_attrs() unsafe to be called from it, though. Two real problems can occur in the case. First, converting the not yet completely aggregated nr_accesses for new user-set intervals can arguably degrade the accuracy or at least make the logic complicated. Second, kdamond_reset_aggregated() will not be called after the monitoring results update, so next aggregation starts from unclean state. This can result in inconsistent and unexpected nr_accesses_bp. Make it safe as follows. Catch the middle-of-the-aggregation case from damon_set_attrs() by checking the passed_sample_intervals and next_aggregationsis of the context. And pass the information to nr_accesses conversion logic. The logic works as before if it is not the case (called after the current aggregation is completed). If it is the case (committing parameters in the middle of the aggregation), it drops the nr_accesses information that so far aggregated, and make the status same to the beginning of this aggregation, but as if the last aggregation was started with the updated sampling/aggregation intervals. The middle-of-aggregastion check introduce yet another edge case, though. This happens because kdamond_tune_intervals() can also call damon_set_attrs() with the middle-of-aggregation check. Consider damon_call() for parameters commit and kdamond_tune_intervals() are called in same iteration of kdamond main loop. Because kdamond_tune_interval() is called for aggregation intervals, it should be the end of the aggregation. The first damon_set_attrs() call from kdamond_call() understands it is the end of the aggregation and correctly handle it. But, because the damon_set_attrs() updated next_aggregation_sis of the context. Hence, the second damon_set_attrs() invocation from kdamond_tune_interval() believes it is called in the middle of the aggregation. It therefore resets aggregated information so far. After that, kdamond_reset_interval() is called and double-reset the aggregated information. Avoid this case, too, by setting the next_aggregation_sis before kdamond_tune_intervals() is invoked. Signed-off-by: SeongJae Park --- mm/damon/core.c | 56 +++++++++++++++++++++++++++++-------- mm/damon/tests/core-kunit.h | 6 ++-- 2 files changed, 48 insertions(+), 14 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 0f359b4ebf1a..de30b788e13a 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -603,11 +603,25 @@ static unsigned int damon_nr_accesses_for_new_attrs(unsigned int nr_accesses, } static void damon_update_monitoring_result(struct damon_region *r, - struct damon_attrs *old_attrs, struct damon_attrs *new_attrs) + struct damon_attrs *old_attrs, struct damon_attrs *new_attrs, + bool aggregating) { - r->nr_accesses = damon_nr_accesses_for_new_attrs(r->nr_accesses, - old_attrs, new_attrs); - r->nr_accesses_bp = r->nr_accesses * 10000; + if (!aggregating) { + r->nr_accesses = damon_nr_accesses_for_new_attrs( + r->nr_accesses, old_attrs, new_attrs); + r->nr_accesses_bp = r->nr_accesses * 10000; + } else { + /* + * if this is called in the middle of the aggregation, reset + * the aggregations we made so far for this aggregation + * interval. In other words, make the status like + * kdamond_reset_aggregated() is called. + */ + r->last_nr_accesses = damon_nr_accesses_for_new_attrs( + r->last_nr_accesses, old_attrs, new_attrs); + r->nr_accesses_bp = r->last_nr_accesses * 10000; + r->nr_accesses = 0; + } r->age = damon_age_for_new_attrs(r->age, old_attrs, new_attrs); } @@ -620,7 +634,7 @@ static void damon_update_monitoring_result(struct damon_region *r, * ->nr_accesses and ->age of given damon_ctx's regions for new damon_attrs. */ static void damon_update_monitoring_results(struct damon_ctx *ctx, - struct damon_attrs *new_attrs) + struct damon_attrs *new_attrs, bool aggregating) { struct damon_attrs *old_attrs = &ctx->attrs; struct damon_target *t; @@ -635,7 +649,7 @@ static void damon_update_monitoring_results(struct damon_ctx *ctx, damon_for_each_target(t, ctx) damon_for_each_region(r, t) damon_update_monitoring_result( - r, old_attrs, new_attrs); + r, old_attrs, new_attrs, aggregating); } /* @@ -662,10 +676,10 @@ static bool damon_valid_intervals_goal(struct damon_attrs *attrs) * @ctx: monitoring context * @attrs: monitoring attributes * - * This function should be called while the kdamond is not running, or an - * access check results aggregation is not ongoing (e.g., from - * &struct damon_callback->after_aggregation or - * &struct damon_callback->after_wmarks_check callbacks). + * This function should be called while the kdamond is not running, an access + * check results aggregation is not ongoing (e.g., from &struct + * damon_callback->after_aggregation or &struct + * damon_callback->after_wmarks_check callbacks), or from damon_call(). * * Every time interval is in micro-seconds. * @@ -676,6 +690,8 @@ int damon_set_attrs(struct damon_ctx *ctx, struct damon_attrs *attrs) unsigned long sample_interval = attrs->sample_interval ? attrs->sample_interval : 1; struct damos *s; + bool aggregating = ctx->passed_sample_intervals < + ctx->next_aggregation_sis; if (!damon_valid_intervals_goal(attrs)) return -EINVAL; @@ -696,7 +712,7 @@ int damon_set_attrs(struct damon_ctx *ctx, struct damon_attrs *attrs) ctx->next_ops_update_sis = ctx->passed_sample_intervals + attrs->ops_update_interval / sample_interval; - damon_update_monitoring_results(ctx, attrs); + damon_update_monitoring_results(ctx, attrs, aggregating); ctx->attrs = *attrs; damon_for_each_scheme(s, ctx) @@ -2452,6 +2468,24 @@ static int kdamond_fn(void *data) if (ctx->attrs.intervals_goal.aggrs && ctx->passed_sample_intervals >= ctx->next_intervals_tune_sis) { + /* + * ctx->next_aggregation_sis might be updated + * from kdamond_call(). In the case, + * damon_set_attrs() which will be called from + * kdamond_tune_interval() may wrongly think + * this is in the middle of the current + * aggregation, and make aggregation + * information reset for all regions. Then, + * following kdamond_reset_aggregated() call + * will make the region information invalid, + * particularly for ->nr_accesses_bp. + * + * Reset ->next_aggregation_sis to avoid that. + * It will anyway correctly updated after this + * if caluse. + */ + ctx->next_aggregation_sis = + next_aggregation_sis; ctx->next_intervals_tune_sis += ctx->attrs.aggr_samples * ctx->attrs.intervals_goal.aggrs; diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index 532c6a6f21f9..be0fea9ee5fc 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -348,19 +348,19 @@ static void damon_test_update_monitoring_result(struct kunit *test) new_attrs = (struct damon_attrs){ .sample_interval = 100, .aggr_interval = 10000,}; - damon_update_monitoring_result(r, &old_attrs, &new_attrs); + damon_update_monitoring_result(r, &old_attrs, &new_attrs, false); KUNIT_EXPECT_EQ(test, r->nr_accesses, 15); KUNIT_EXPECT_EQ(test, r->age, 2); new_attrs = (struct damon_attrs){ .sample_interval = 1, .aggr_interval = 1000}; - damon_update_monitoring_result(r, &old_attrs, &new_attrs); + damon_update_monitoring_result(r, &old_attrs, &new_attrs, false); KUNIT_EXPECT_EQ(test, r->nr_accesses, 150); KUNIT_EXPECT_EQ(test, r->age, 2); new_attrs = (struct damon_attrs){ .sample_interval = 1, .aggr_interval = 100}; - damon_update_monitoring_result(r, &old_attrs, &new_attrs); + damon_update_monitoring_result(r, &old_attrs, &new_attrs, false); KUNIT_EXPECT_EQ(test, r->nr_accesses, 150); KUNIT_EXPECT_EQ(test, r->age, 20); From patchwork Thu Mar 6 17:58:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005062 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 B12B9C282D1 for ; Thu, 6 Mar 2025 17:59:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 229AA280006; Thu, 6 Mar 2025 12:59:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1DD62280003; Thu, 6 Mar 2025 12:59:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02F24280006; Thu, 6 Mar 2025 12:59:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C635E280003 for ; Thu, 6 Mar 2025 12:59:19 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id CD36E12223A for ; Thu, 6 Mar 2025 17:59:19 +0000 (UTC) X-FDA: 83191888038.22.9D3FE81 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 31933180008 for ; Thu, 6 Mar 2025 17:59:17 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bmBJepJD; spf=pass (imf24.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283958; 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=DVMdBAEeXdwKKDh6TnSK6RDDxoxO/l1K0SEnJYSadMY=; b=78sRL9WGJgBNyDGO4g1omqO0iZ6jSLPytSi2RfRpW29r4+jrC6KE8Beu04Hz/KPqYCpz0O vJ5gWpMvVlrhH+ozgTflFpvxUk5ythGRnncj0mEMkWB+y5d5iJZHlXfAzXVRcjd22xv2D9 V/PEtPX/pctI7JAJJld02qJoc4mBFCM= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bmBJepJD; spf=pass (imf24.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283958; a=rsa-sha256; cv=none; b=Erw3ohC7hUYcHcJf5TkoewrYLrKRFzktuiTSMtpaeM1ceK3AJ5VAqz+zkM2Ia/+VUi/oGE C13e8mC0yhoqjvJlKSIMH1eqRWh1sPxMrRNcHQjbVLOSR/PzAPUquGXYXtv9YwfcV2g5Yx aB4SnxI3IGmwph2NDDLkNVxIDIv4scw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 914365C599E; Thu, 6 Mar 2025 17:57:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1CFEC4CEE9; Thu, 6 Mar 2025 17:59:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283957; bh=kjRBOvHWNbdf/mQwA1XYqEBxVUEwRjN/LUXLXxN91ho=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bmBJepJD665aLJmGQxhQbg3r5uCZI03NRdxNpdG+KwHddc86qPBdSRAQMFQ3yfnD5 09FCigyvExD6n59jKLLfJQFgVHXaekyCo6Xxgu9m01Lfm5jpm3mqHwHQ40bZxrmGpN 1Aef85s16/6RGAPVPLckJ8/8Il0wJShRPayR0ziXlJNWe2oEzYM8a/1Soix28O8znn iLRgp53OMwhf35xMdsEndfPegP/HRBVMiQorpbOYyCukclBrIiy27d2Wt9h2HWurOI UpoGbqg6MBK9TFXQhiYZVs2s0oRLfTryt6K3wb0VRCAkrg9w1THC6kFWRNiYevY7KX eNxld9XLVJ0Zg== 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 04/13] mm/damon/sysfs: handle commit command using damon_call() Date: Thu, 6 Mar 2025 09:58:59 -0800 Message-Id: <20250306175908.66300-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: 6j49fz3a9utrh1zp7b89bnzynwiz87oa X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 31933180008 X-Rspam-User: X-HE-Tag: 1741283957-883981 X-HE-Meta: U2FsdGVkX1+6gA9o1E1ZE4J6quV78WtI36QMnMANJ1Qrl2OwJyxuLxQr7qb7O29oQEeFa+KokkURs/4EPxU4XtrN71EUdLBJsDF53i8dH6UucxsUJMSGrXg7WS3hLHRe6JX1rL4U1y7oPbDuEsnq6SE9EOQ/+KGzGXZELqeeOM+UHxfk8ZecMGM+IwcTPNCLGJgsyOpD8x4qmlr/b7Mi7CqJp18dkgHSx7pgK4ctkt0WdYK8qIKhhBu0KkGlooE1Oye40y8itQ4Vpp31BEAYtF5Gxu9psK5UOSfyhAhEdhb1IVKO0MsJYvreg2gynk3w+0PJ1smIZOrfFRN/0UexVBe2/G7IL/5cqUVZlaGTyl3WmIb0sVFGPkKSmuzIQiDTPrvq+EwQb/uyH7NZEFzXEbnjqx+pK+iEnVMDpKQRbxfylp8kYp2uWBu035irjFaQKtrnOO4/p5d8fEKTzcnG0saTjz2dBqUwDZ4At4S95au6GjmlIMJYN2SiWzEcSwkpJWoOZfJlJiEnsu6lRuj5WqF/tsdXjEFTSMFRoMmov/XHfGlXk+sbryz76z9HDL+sVA4RolDpdXnYXpLigSrtgJKAMsITsJ7OkAtMAqNnV6SPkUsZMASD61HpXT4fGNF7zc9eE6Yhh34wb5rfhIesZUtmkFO0m64JvcY6GcqSbXjCyr2UzexHcteuBjGp/srKlbmSfePUULFiQO3t0HMlKrrdv6PCHN3UOVpD/mXdeVHrKjYB/cAMDjhdLkWr/XzPGrbgzCVvIG+SBSdbAKqA51H8u7SwEIHWGb5r2VDGPExSrgEl5FisV+uQIjPGomqkgJYvLojh3CybHlv9HhnyA99guwNEFaO+uWZxX9AhUAIysfp2j6lBelHCwY1NGFivlL4q50ruB9NmhB9dUp76XGMkaRYC374v3viDkzcq+qp9402xvpPMSQdX6gwtfgEBKAZpkmpcP4BelNCslkj 4YPUTTzN V2k/69M274J1qNe8rLJ8RlL+ISqmgYZB5Ao9K4bfdx/C8i1KEnczOUs98DEXpTVnUF7TcGQqb0W2iaXpgfQULwp33xdjFN8g1vMavOcnGrxEQRln9X2LdN5H5ej0f/Hxg8xucWI/25YMKQzcIP7KxhWSl0cx3+Mca/i9RhWUHUKF5E/wS+hXH7Q5S1/p/gc6yeNJxV4mih0NYhlFEPxS3Jnc4p7UYI3lZ2Y9/gUlARBk3sLBLEV7zclmigYd5suBdWZ+4dn5kDDpSvNXpxaFH4LaeSw== 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 sysfs interface is using damon_callback->after_aggregation hook with its self-implemented synchronization mechanism for the hook. It is inefficient, complicated, and take up to one aggregation interval to complete, which can be long on some configs. Use damon_call() instead. It provides a synchronization mechanism that built inside DAMON's core layer, so more efficient than DAMON sysfs interface's own one. Also it isolates the implementation inside the core layer, and hence it makes the code easier to maintain. Finally, it takes up to one sampling interval, which is much shorter than the aggregation interval in common setups. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index 87e4c6e3614e..c55a2cee4b74 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1451,8 +1451,9 @@ static struct damon_ctx *damon_sysfs_build_ctx( * * Returns error if the sysfs input is wrong. */ -static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) +static int damon_sysfs_commit_input(void *data) { + struct damon_sysfs_kdamond *kdamond = data; struct damon_ctx *param_ctx, *test_ctx; int err; @@ -1550,11 +1551,6 @@ static int damon_sysfs_cmd_request_callback(struct damon_ctx *c, bool active, if (!kdamond || kdamond->damon_ctx != c) goto out; switch (damon_sysfs_cmd_request.cmd) { - case DAMON_SYSFS_CMD_COMMIT: - if (!after_aggregation) - goto out; - err = damon_sysfs_commit_input(kdamond); - break; default: break; } @@ -1712,11 +1708,7 @@ static int damon_sysfs_update_schemes_tried_regions( * @cmd: The command to handle. * @kdamond: The kobject wrapper for the associated kdamond. * - * This function handles a DAMON sysfs command for a kdamond. For commands - * that need to access running DAMON context-internal data, it requests - * handling of the command to the DAMON callback - * (@damon_sysfs_cmd_request_callback()) and wait until it is properly handled, - * or the context is completed. + * This function handles a DAMON sysfs command for a kdamond. * * Return: 0 on success, negative error code otherwise. */ @@ -1730,6 +1722,9 @@ static int damon_sysfs_handle_cmd(enum damon_sysfs_cmd cmd, return damon_sysfs_turn_damon_on(kdamond); case DAMON_SYSFS_CMD_OFF: return damon_sysfs_turn_damon_off(kdamond); + case DAMON_SYSFS_CMD_COMMIT: + return damon_sysfs_damon_call( + damon_sysfs_commit_input, kdamond); case DAMON_SYSFS_CMD_COMMIT_SCHEMES_QUOTA_GOALS: return damon_sysfs_damon_call( damon_sysfs_commit_schemes_quota_goals, From patchwork Thu Mar 6 17:59:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005063 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 34C00C282D1 for ; Thu, 6 Mar 2025 17:59:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E2A1280007; Thu, 6 Mar 2025 12:59:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 499E4280003; Thu, 6 Mar 2025 12:59:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 309F9280007; Thu, 6 Mar 2025 12:59:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0B5D9280003 for ; Thu, 6 Mar 2025 12:59:21 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 277B358A70 for ; Thu, 6 Mar 2025 17:59:21 +0000 (UTC) X-FDA: 83191888122.02.270FB35 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf02.hostedemail.com (Postfix) with ESMTP id 6D4C980004 for ; Thu, 6 Mar 2025 17:59:19 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=U92VK0EN; spf=pass (imf02.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283959; 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=Yrt4fz+9Y7lzTTHW9ChCyqes11AgbM5Ey9NkwTXZ6pE=; b=Rodha2yIIvWq4JY2h6VUeRRrg1gHkqTD6EX9su85EpRgxdNrPOiBiKvgysfwZRAqT6yBPc aQBVLYMx1/IunGO2xAVhAnPLF2rQvzECd2Lh4YFIK7FEmIR4MCDGwXHEsQ59Kqbm7gaC/x eyOS4ZucLhe6UdGDrv31AktMn/cSQEA= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=U92VK0EN; spf=pass (imf02.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283959; a=rsa-sha256; cv=none; b=MvCdqmSbmWVapugxGb/SDMHa7oqsKevwcX0rxXTIaJ7MbRuCHQn2Q0sFlmb4q0rdFeyebN k9L0S5E/96RhTg5o0+4epYYbILuHlpJrYOfY9h9ZjXZqyVD0935CAuBmxhxlt5HyL/iUBi //bHwWEEn+K08Sl7WkhdIZJWIEHU5vs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id CD3115C59AC; Thu, 6 Mar 2025 17:57:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B34BC4CEEA; Thu, 6 Mar 2025 17:59:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283958; bh=g+YGDmMK4WZf3RuQVlcd3/9Gf6V3dNg6yLBZ2nBENG8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U92VK0ENbWqUUQoPbn23XTVjzA2f3hQRg686NR8ALpfRhCiiFF2CE4pPZe18I36rV OKJL6pEqlDm81rvi2XhwTgYQjQS7uJFF5l/uXzrBV8deKBVUNjzmjXQ45h4O3zjSdR laRIc/fAq3x3hZiv0f/V9hT3jSVbCQTYPeOnph9DnsuW1jiJI2K9cEasacTM2TQBd4 pem2cXI9CUhEp38yhj+98a4t25rQ1WqWEf8PMlbRozNhz8dCH35JqdUDkUWJszIq7A FxucxW7LQ76j0isDQpQZ1BgxDxHAERvhBFUWsAxe4M02PEX4a3mkuGu+/jmfR7kPAX kLrrLXQJlZkpA== 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/13] mm/damon/sysfs: remove damon_sysfs_cmd_request code from damon_sysfs_handle_cmd() Date: Thu, 6 Mar 2025 09:59:00 -0800 Message-Id: <20250306175908.66300-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: 569p45q4khaeyyurna5pw6zgtttj4km5 X-Rspamd-Queue-Id: 6D4C980004 X-Rspamd-Server: rspam07 X-HE-Tag: 1741283959-829988 X-HE-Meta: U2FsdGVkX19KXriwfcVuGOQAtYkytN50JF4lJ9Ie1xhDALIeV5QqUdym1xUgg+qI8k4ATJC8/yHhrFBrmo3yopRsNcHR3btBxrIGNqQXILU4Ptsk0TMhkp7FWawu1hS5o6GMg2jWhONPwlTapL40Ls5V4s3DA58rosYhyU9188qU7xlG59dIIiRby4Q4iIEMdzRM0I4crYNPWIpYblKu9C5QQW0anmmRObiB2wS0mRQLezAFzzW9cuXsNZVpff2venEFSxbpAEECRhfitdMoQFKj+5JvWEjiZBzcd/iaNym1GQVdMRhiOuZNZ3lE46SfWRm01NGcyoyCDKHUildSS2xims8A9xN/Hrn4rNq2jZA9ryRXZgD0Zcwqxtbfco4DXCOelT4jE1J4FbeXNZw2F4aNEw933G6RvTFuW/GqgyqYKPj+a8tXMCsWj45w6lq/64VnKbv1bVDlv+n/MTFMMWWjFC2BG+2JBH3jPETYU14pYjJG8kiaaqW/3o5c25wPHWJ7pa1UjW2Xj4MOdtU0nE9IDG/uxQ0ScfhaKWd/gqTCT4uzcpSiBwV6UcrdC7t9H1QEst0vh4EyRAstlW4EEcSoUMKKlD4/Yx6o7V4XlB/C/n6Nne3hwD4GGxHTqg8X4YA6BzMs3wycFwcW8oPRsX7ZZ2s7IwZhUCiNTdYhXnKWnXNTP6MCyeoFuaXI9qXx/LDdPcjLWrptNvhVAgmCDs6Fj4kXC3XNfjBYnU20DQgFb5Zlz3DCDC4lz74hUHfvPakQrAcTe5sakGgVAVXdb9yNN3rtyBqrYzsAP7GoCMgXBhGUR3nfFkNpajW0leq8QOUmMGOmWs8QwX5zsWgTDvjO9ffGv1bWdj25AfCGYaeVr53hzQEJh8OnS222SZ9BxVSQDUiPksOWA59UYS0o2b8xNYmAok4Ix3ZStVRMrlfGs3ZO72IijqoUJcULArFNG1QDBSFr1g2h+9Wnw1G G+l9DtAr 0iroIvWABFdO4hCADQui6nd8w+n3ib+I/LFRZgY9B8PgneMP9YEn5SE/6V8ji2ZZuIfGjVoKzhffPoj9wk/prxgeWkoWL+QT+2jhmvLrT1pWrzS7eP9UQsKloAprh+3ijB2/54w3G6eImsy6CY7epIIe6KVkZYKejLqzu22if1q/BxHXdY3g/ar6xdy9zAkT7Eylswu9xodyAtKpYhgLMm63TPrA2gpITog+4DJkgqD+XtxpT/s4K1/dRrye4U5h4emnLS5FM6AE3RdNEKP7YJVjWJg== 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_sysfs_handle_cmd() handles user requests that it can directly handle on its own. For requests that need to be handled from damon_callback hooks, it uses DAMON sysfs interface's own synchronous damon_callback hooks management mechanism, namely damon_sysfs_cmd_request. Now all user requests are handled without damon_callback hooks, so damon_sysfs_cmd_request client code in damon_sysfs_andle_cmd() does nothing in real. Remove the unnecessary code. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index c55a2cee4b74..166161f12c26 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1715,8 +1715,6 @@ static int damon_sysfs_update_schemes_tried_regions( static int damon_sysfs_handle_cmd(enum damon_sysfs_cmd cmd, struct damon_sysfs_kdamond *kdamond) { - bool need_wait = true; - switch (cmd) { case DAMON_SYSFS_CMD_ON: return damon_sysfs_turn_damon_on(kdamond); @@ -1747,38 +1745,8 @@ static int damon_sysfs_handle_cmd(enum damon_sysfs_cmd cmd, return damon_sysfs_damon_call( damon_sysfs_upd_tuned_intervals, kdamond); default: - break; - } - - /* Pass the command to DAMON callback for safe DAMON context access */ - if (damon_sysfs_cmd_request.kdamond) - return -EBUSY; - if (!damon_sysfs_kdamond_running(kdamond)) return -EINVAL; - damon_sysfs_cmd_request.cmd = cmd; - damon_sysfs_cmd_request.kdamond = kdamond; - - /* - * wait until damon_sysfs_cmd_request_callback() handles the request - * from kdamond context - */ - mutex_unlock(&damon_sysfs_lock); - while (need_wait) { - schedule_timeout_idle(msecs_to_jiffies(100)); - if (!mutex_trylock(&damon_sysfs_lock)) - continue; - if (!damon_sysfs_cmd_request.kdamond) { - /* damon_sysfs_cmd_request_callback() handled */ - need_wait = false; - } else if (!damon_sysfs_kdamond_running(kdamond)) { - /* kdamond has already finished */ - need_wait = false; - damon_sysfs_cmd_request.kdamond = NULL; - } - mutex_unlock(&damon_sysfs_lock); } - mutex_lock(&damon_sysfs_lock); - return 0; } static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr, From patchwork Thu Mar 6 17:59:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005069 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 72A55C28B24 for ; Thu, 6 Mar 2025 17:59:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 727C728000D; Thu, 6 Mar 2025 12:59:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6D855280003; Thu, 6 Mar 2025 12:59:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 57D8228000D; Thu, 6 Mar 2025 12:59:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 37AD2280003 for ; Thu, 6 Mar 2025 12:59:30 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id BB6321A233C for ; Thu, 6 Mar 2025 17:59:29 +0000 (UTC) X-FDA: 83191888458.10.B34CAA2 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf27.hostedemail.com (Postfix) with ESMTP id 1EC2C40005 for ; Thu, 6 Mar 2025 17:59:19 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jfv74gGj; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf27.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=1741283960; 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=C1AJWfRumzmQ358us44uziJ6YdgiSOHEvhD97GuZ1Fc=; b=iWCvl0IOYJWqiY3OpWhbqe9LHl5zvy6VVNFMrtZo3ja+VJRQunXUw0R5/UoHkpWGJKzoEE udhhh8KDCw3xoBiOKY+nY7k1CjmP8M93sGmKXb13DtRvsnSIMD0/djSYKlB4icE4XpSk+f 4P4kyixvjJ8Lh7SGBLh0bTDHaKldqbM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283960; a=rsa-sha256; cv=none; b=KcfbVRZVHVanD05p9gJyYLT6n/30j6BlvjRd+6CqQLe3nxAmDgsBUlM8dvVzMBIr6bevLm H3M2IDFYxV0CFDTlhte6uUVxRng731mpIHxbAn8o1gPDTM1kwVihWS/rjCOH9wP7fEZyxC bsKOIdDPMZjhpxJt5VRzKKUcJHPuWRg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jfv74gGj; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf27.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DBEC0A450D6; Thu, 6 Mar 2025 17:53:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C533C4CEED; Thu, 6 Mar 2025 17:59:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283959; bh=T05PHV/b/RY6SE79bGJVruG1lJQyvBwcsDSu/WYUE0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jfv74gGjwJwOzARB71Z3kiafD2XrxR+FBGWh46b6W92enZzckMZ/RfqhldIzQyAsB EuyTB/WjbejaSlS+HpfG19pNGGEQWSU+erqB7cOPWDpxsPgWkVm+2KiKVKBvA5i+JP dEUw92P7TFRXUR88EmfDcqc1VfLEqqY/CJ/KCYqdAv1ZOE6e/6BQG/dEIRFOgVWwBw CiDj/v3AhV17AbIbDobtTPKMJmeIUnuDjIqdvjV2bNWcd2dfagZz8B1XA18spApTEq onjO1JALR0bjADcA8Cb08a0ywegLPi9sm1gbyWQ6Q/C9FWPsbrbXBLxb6RzMUpnfVz cxAObq6TqHqZA== 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 06/13] mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers Date: Thu, 6 Mar 2025 09:59:01 -0800 Message-Id: <20250306175908.66300-7-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1EC2C40005 X-Stat-Signature: 6gfznx9h6ji4awywhbw1k3t48q41jyw5 X-HE-Tag: 1741283959-387782 X-HE-Meta: U2FsdGVkX1+882G3KTAvlLvud7/A3/Tyv+unLRjSmF91bEJv9xYlZiKJKLAsFfyve2JQLTP93udtikxpb1ymbF2aTs48FMltSGe7zKbg3yHbp/MTEtYi7/Jto4iMdwX1lNiGiI9yVbYoJih1RaxHTnECp2PWz+hvYBUr6DiLEQYFWJg+dUxiEMotxlxYOwXJGVMkMLcqRiRZSgo37yUy9ojZdMq3Yv5laBGNOrrsY/gK8LKA12tlCj45qyDdFC7iNmzNaBuwL5lZ9MLbQ9zAvpcLxB7POHcd1EqGs5bXSKITJFALMNWF+cVEIhPgFi5+nWd8epEszXhiFvFo9J38A+IsTCfxICyalnHm+3r5tgzf0gPAgfUqM5QH+yveWudIIW09kJrqTTQJ8y98/6Fa8MCTZUGdVODlwul9EwaQl6Xjp1tJvMae0lGeiS0mMs8AMZW4Gg47eovgJ3BbaOjoUtsLX8TCUHjLFuRTJEu0Yk2ITwofAlrTmY3zqw1TUUQ+SERl81PSz9+17nrkQbTJUUuAk7MiAfdtbfix6Ih8i/OqjJ02ucoocuei/NzOa54pYkBooHVAgUo7ED9DBV8ArA/JQua5Hgn42oHUCD5kxewACDkrv3VccbTNGPD11Pvzy7gOQBxOCzb+SznhqogRftV9E1snc9CY/zwMJKtzgREwJP26qxGcxvNsqMUkfiQFdApmgrlgBRBA6SKqd8sRR91RUlpfk1YANAlZka8GmJ3f97yrkNsr8/geKCDs+xs8f5ymB3H4bzYg1QGQm63QfMe4bmXULUh2AYkPd1UIRI9tSMAXpPnpbcZrjVDS0Hwa9toT36XBiW5YPFs1+4G4SZrznIt+R0/N2m5LfAICBezbzyskGgA9+cCEsVcLcZZGGJkUjgbMdif3gy5ytd4mL+xlZHspa4hS7a+hhQ4AkIg0IkpoquH2iD9rzHv90jZz2XSErpEFzjvac1KD7nL 61ETlSA+ S4/q7zOxSlHw+7qnjSX3SsWFv916WO1dRLWf/cR5Deh2M/sHVq8g/hp/3BwTfO4ujetH7X8LU0raI8T5iwTW4Wtbr/naLxjs/ioHHJ5qzAsQyDwV/rc20Svp8E0jwCnbfHHMC4vjTpHhcacXt5YE1Yosbn3AlCUbzbKPi9Gh6pgL1goYTvjn0qnUeMaPen840aHx/ED3I0NZthdUmN7mQmq3rX/U1M7Ahz2sp9+rKFIEUjHqNciopzDV2jGMgukbHgmnBMW00IzCTReiMzpPtGuNEXA== 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_sysfs_cmd_request_callback() is the damon_callback hook functions that were used to handle user requests that need to read and/or write DAMON internal data. All the usages are now updated to use damon_call() or damos_walk(), though. Remove it and its callers. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 62 ------------------------------------------------ 1 file changed, 62 deletions(-) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index 166161f12c26..e5bcf019086f 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1529,65 +1529,6 @@ static int damon_sysfs_upd_tuned_intervals(void *data) return 0; } -/* - * damon_sysfs_cmd_request_callback() - DAMON callback for handling requests. - * @c: The DAMON context of the callback. - * @active: Whether @c is not deactivated due to watermarks. - * @after_aggr: Whether this is called from after_aggregation() callback. - * - * This function is periodically called back from the kdamond thread for @c. - * Then, it checks if there is a waiting DAMON sysfs request and handles it. - */ -static int damon_sysfs_cmd_request_callback(struct damon_ctx *c, bool active, - bool after_aggregation) -{ - struct damon_sysfs_kdamond *kdamond; - int err = 0; - - /* avoid deadlock due to concurrent state_store('off') */ - if (!mutex_trylock(&damon_sysfs_lock)) - return 0; - kdamond = damon_sysfs_cmd_request.kdamond; - if (!kdamond || kdamond->damon_ctx != c) - goto out; - switch (damon_sysfs_cmd_request.cmd) { - default: - break; - } - /* Mark the request as invalid now. */ - damon_sysfs_cmd_request.kdamond = NULL; -out: - mutex_unlock(&damon_sysfs_lock); - return err; -} - -static int damon_sysfs_after_wmarks_check(struct damon_ctx *c) -{ - /* - * after_wmarks_check() is called back while the context is deactivated - * by watermarks. - */ - return damon_sysfs_cmd_request_callback(c, false, false); -} - -static int damon_sysfs_after_sampling(struct damon_ctx *c) -{ - /* - * after_sampling() is called back only while the context is not - * deactivated by watermarks. - */ - return damon_sysfs_cmd_request_callback(c, true, false); -} - -static int damon_sysfs_after_aggregation(struct damon_ctx *c) -{ - /* - * after_aggregation() is called back only while the context is not - * deactivated by watermarks. - */ - return damon_sysfs_cmd_request_callback(c, true, true); -} - static struct damon_ctx *damon_sysfs_build_ctx( struct damon_sysfs_context *sys_ctx) { @@ -1603,9 +1544,6 @@ static struct damon_ctx *damon_sysfs_build_ctx( return ERR_PTR(err); } - ctx->callback.after_wmarks_check = damon_sysfs_after_wmarks_check; - ctx->callback.after_sampling = damon_sysfs_after_sampling; - ctx->callback.after_aggregation = damon_sysfs_after_aggregation; ctx->callback.before_terminate = damon_sysfs_before_terminate; return ctx; } From patchwork Thu Mar 6 17:59:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005064 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 CEA83C282D1 for ; Thu, 6 Mar 2025 17:59:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D650280008; Thu, 6 Mar 2025 12:59:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 28CDA280003; Thu, 6 Mar 2025 12:59:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D63E280008; Thu, 6 Mar 2025 12:59:23 -0500 (EST) 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 DF6B1280003 for ; Thu, 6 Mar 2025 12:59:22 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 03AF7C1DEB for ; Thu, 6 Mar 2025 17:59:22 +0000 (UTC) X-FDA: 83191888206.18.D3B77CB Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf21.hostedemail.com (Postfix) with ESMTP id 638521C0013 for ; Thu, 6 Mar 2025 17:59:21 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=erZYTq86; spf=pass (imf21.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741283961; 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=g24tHwHENQzuq74tG8Hzv8/qogNp0H5mHSe1vjl7Si8=; b=zZAxwtH3p/fPiL/5+N+PsLgCUoJcNVVlWMZHHeX2+4jDuWKbebt4nd0pHzS/dU1GpypyC4 2kQfd5pIKncOe2SoWMWQ7cyfe9psluia6SbXcLPBwzdbxxth/U+urUJqePh5kLK/3a3+8R pGFG81PrsWkNijgAjh8LOfNJI/yOtHM= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=erZYTq86; spf=pass (imf21.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283961; a=rsa-sha256; cv=none; b=v3W/YjQ67jeSLEQI+qdMXrhgp2uq5gDECiLB+bEs7cVXxsMCHiUzUvu/jq+EpeVK8BPnFY Tt+RUpHiLfjT3DWhR478vQ8ubf+COB+VpHNO3ZALP7Rt8BRF5v+EegCXkTUN6qBHHzopEV Pz0Fhxm9yYoaO/qPd0KfkSj9srBQWoA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 24F9BA450E3; Thu, 6 Mar 2025 17:53:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 648EDC4CEE9; Thu, 6 Mar 2025 17:59:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283960; bh=GLzNjNzoqFiPhTNA5KWvEmI61gvwVWoLHB2Kc36Fd2k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=erZYTq86Muoe+ngK+l8uFZkQmK24b0sIV9xkOZI/wHdKgAlqF07w3QclG8rJUEtt8 azNg2lsCWGWyyEVOh2ak4BD5Io128WbCrygzc3VC9UX3mmg4z0nbeqAsdZIUTuzcxD hG84wS3cy6s1nK7AFt/uQaGaFILjk74/2GkbNcrpDKsef91CysP4SGpiDYXw+MlCF0 hGtD4DsYsf2qA9K4v14hBqp1GE0GXtsAVGkkezSyTMNlKvCMFt6GoEJDIsAR8CTjgn eELoCkIQRv7gn9Bj+qMd90PhpcARNPlobRsIjOb2VcQEdd1i0bjZMDSRUFsDyaDVHT eZqtABr7ZuxxA== 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 07/13] mm/damon/sysfs: remove damon_sysfs_cmd_request and its readers Date: Thu, 6 Mar 2025 09:59:02 -0800 Message-Id: <20250306175908.66300-8-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 638521C0013 X-Rspamd-Server: rspam09 X-Stat-Signature: rmhuey3corgje4thc4ezz5h85rujcaxz X-HE-Tag: 1741283961-785589 X-HE-Meta: U2FsdGVkX1/lBHbF96w63Lf4c1pvvv0ttwKtxVqSy0X3IQx/qhGQML1ZcFNhsgPoFvHUdA+vcZ3GGfY0n+5WVCqXhHVAjqvx+DI3p4hvtyOyvnbtBbSj2gPEmoRgRHn6nPu9zpUidKuNFHT1ts/OjCs/GcbZ1igrMsdeex4QrfMbBtWQAI/9VGSHLMYoOU+POnlOkp0UrSL6WUORe5B0gTNYiYR7FL0cx6azEHOQ/d3Qs9ypGEIjS48LaEdqZ3PT5R9QwRLXZPstIkg5oLkSqcv0dafkh3ehQHjHXSwUg6ei0U2CAnnQlcP11imhHVEhfSAia4lKxn3L1ZohEedp0t2E+2Bsew4dvI/hGORKi9nApf7e5T5rMUFAB6hPR+WvPmJbo5zyNSrsBmv71hBSBJmEnwWR7yYfPO0c5F0vYtS1vDHQhq+OXq6w2bgI2DLXcJNPnuoaUQ2+0Ft8HKRPgcXxk6fJ9mdjZ+OsXINoTLVWrwQX3nC8RBzsUeiFqpUzJAob2hhRjawbLe6MoXNfuevel/zZSSUUz9ZckFi11sQjzZGGpVNPgsITwy3fzfksqIhOaYP6ln/eud+tka7fyJicBEUv7fVHZEmTptsxtflxmi0Ux4aNR8kAfEBiQPvZYJbgT5VZ6HDlnFwZXCvTZnLt2DZ2crdQyEI5ZI9/k1LMC6Akg8xGphr1vMF0nZzB3zZ7jw07pVh/+/CLe4zxrCawbL0RD4rNcmyFoyhf42ROjD68Boo1bbAHj/1AqrKm9cH7QpglYxIO35SX7KTMBeKmbCU+cfAEKwpj19S7aj6WiHjDZ0iKRfVwM+sm94I95vlScSaqrRcNzXDxC66fSBWZiR83cZHrrJTt+qDOVGXKwvKsMcQLUWWWT6AFv2QIyNeEIby0gDoGLvtPkLGlzW6d9n0z6O0QK1Li8Dp6VzJbKlQMCZX55+hxFGPMq+QVq4dwM23as1dib9o/2ch 2+ctDhHL EurzP/1r1UoFo2HW5gnvf4QggCCW7x1QWSRk13sQHRmERGEhQRhhVvikUQn7RkpMB2/P7EmbqR0BvHeTA8SzIx2aBSYS+o4Qm6qa0vv83FYGgKFywfcxrEcRDPZYwLiGAR4vuONYWvRc8tbgELB+cq1Gk5dK96bIzKqr701kf8rTMG9JWwmOzS1dwqfPPDgKfxXS1S8+Zb6nu2yYulxFK3PWba9V+owB0/QyXygQ0CHSg5tY4K+K1Pn+ikMsquyHZVRIimzMMQXnZfScDcRrQfS/XOg== 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_sysfs_cmd_request is DAMON sysfs interface's own synchronization mechanism for accessing DAMON internal data via damon_callback hooks. All the users are now migrated to damon_call() and damos_walk(), so nobody really uses it. No one writes to the data structure but reading code is still remained. Remove the reading code and the entire data structure. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index e5bcf019086f..1af6aff35d84 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1238,25 +1238,6 @@ static const char * const damon_sysfs_cmd_strs[] = { "update_tuned_intervals", }; -/* - * struct damon_sysfs_cmd_request - A request to the DAMON callback. - * @cmd: The command that needs to be handled by the callback. - * @kdamond: The kobject wrapper that associated to the kdamond thread. - * - * This structure represents a sysfs command request that need to access some - * DAMON context-internal data. Because DAMON context-internal data can be - * safely accessed from DAMON callbacks without additional synchronization, the - * request will be handled by the DAMON callback. None-``NULL`` @kdamond means - * the request is valid. - */ -struct damon_sysfs_cmd_request { - enum damon_sysfs_cmd cmd; - struct damon_sysfs_kdamond *kdamond; -}; - -/* Current DAMON callback request. Protected by damon_sysfs_lock. */ -static struct damon_sysfs_cmd_request damon_sysfs_cmd_request; - static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -1555,8 +1536,6 @@ static int damon_sysfs_turn_damon_on(struct damon_sysfs_kdamond *kdamond) if (damon_sysfs_kdamond_running(kdamond)) return -EBUSY; - if (damon_sysfs_cmd_request.kdamond == kdamond) - return -EBUSY; /* TODO: support multiple contexts per kdamond */ if (kdamond->contexts->nr != 1) return -EINVAL; @@ -1796,8 +1775,7 @@ static bool damon_sysfs_kdamonds_busy(struct damon_sysfs_kdamond **kdamonds, int i; for (i = 0; i < nr_kdamonds; i++) { - if (damon_sysfs_kdamond_running(kdamonds[i]) || - damon_sysfs_cmd_request.kdamond == kdamonds[i]) + if (damon_sysfs_kdamond_running(kdamonds[i])) return true; } From patchwork Thu Mar 6 17:59:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005065 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 3CBB4C282DE for ; Thu, 6 Mar 2025 17:59:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D4B1280009; Thu, 6 Mar 2025 12:59:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 150DB280003; Thu, 6 Mar 2025 12:59:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EFA40280009; Thu, 6 Mar 2025 12:59:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 313BC280003 for ; Thu, 6 Mar 2025 12:59:24 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 4EF43A43C9 for ; Thu, 6 Mar 2025 17:59:24 +0000 (UTC) X-FDA: 83191888248.28.7B47177 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf15.hostedemail.com (Postfix) with ESMTP id C3864A0013 for ; Thu, 6 Mar 2025 17:59:22 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bNjKFFQ4; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741283962; 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=iEh2mQxVkhEGZ+8+r9wTcbJn9QBXAKgAuSJmg2xNc5U=; b=wEJVZZYoLeHd1N5OI0TGsivTJBzkGHMlgWk23glQqoORstG+FEYowUMQPk/yG+7K6OBKqA FSfmK251dRFlcQlPbEbZd6sVwR0XOivxG922tCrpIsAFB1U908QfK5Pi0ssa2RLhShbK2k STtWhKzMYw+XbPCivRn9HyfL3HMt7IY= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bNjKFFQ4; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283962; a=rsa-sha256; cv=none; b=XpULQuNLOC9lUP+zr+5p5bIEecACL8C+wwGcN/rBXEvUGrUriz4Osm+Xhvgn0GMnxX794w 4aa+ywCssigkFmR3GXr8Wiwe1r2ICtOau3gdHDJRxVnwOUTxhohemOgKFQ58uYImV7KELV Q5tUz80c0eSXtgj5/Xt2rSoBCvu+BhA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 8859DA450E5; Thu, 6 Mar 2025 17:53:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1518C4CEEC; Thu, 6 Mar 2025 17:59:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283962; bh=CtrMG3b7XVPdT3oTv/pTE3ihT4fR44kaP9KWdR8X7yY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bNjKFFQ4rDBT0cqCm2AT0D+nqoXZvgts3+W3NqHzMf1U+oxW+TcglOC35LUdQVkVp Z936/lHqyHUi4YxJG4dD50mQKP4qakrLcVT5pXJ0XO+kNUsJpkRas/SSW8DeU2fNZf AWMXL2m6qztdxSIityXOiu3DFiRYCDXnsjBLbsFcHrewWvPMAxPwhTRRLd/3U6m1e4 AAFDj7tRbac5H8cybPSMKqrsjRwPOOAjYUo8wFOHIKqEr9MN6o95+MiWjBvBEFLrQX 6oOl5M6C6zzj3KSSN7CWNxh8zicOJITZ28nDjso82JMSnkW4hzudWVWqDTw2s/k5P6 yPOXj7lQmJmCg== 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 08/13] mm/damon/sysfs-schemes: remove obsolete comment for damon_sysfs_schemes_clear_regions() Date: Thu, 6 Mar 2025 09:59:03 -0800 Message-Id: <20250306175908.66300-9-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: jogiwt3rtq15wxo63rm9zq6ermhnkab1 X-Rspamd-Queue-Id: C3864A0013 X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1741283962-909662 X-HE-Meta: U2FsdGVkX191d4n4fMifkZdDcp3lmsXwIc49CPyyZNEYjfJ4DAKSp+GmjvXt+V/Xcz1MVZWdefbca4MXy5dxhSR3ftCaJRJqhlrwnFbfj3LGCNaxwwjL/+JArx/6fqgJG7R+eO5eYe5Ylx2U5/3+4soxx4KJLKub4mzFXFIdkzidNZxg/LjOzmU+CjK2aAg2ej+IOQkS0ilfG+WkxIODWdS552yXs/uNfgQbZNJvK72tUb/XgGhPyfp45QRP9DUBG/BTxb1n9472j/WwKOGKbFz05P+uHbRWTTXwbXy/IlUY0JLDpqN86ojQ+2sIMAkZL4mVamzFlKPVbVfR/i/zPnK5p99cjreQo9HAukROwlCfNrJ+Ds0YMBppoikSUkhp8kWc+Py5QWpa0yuZTrqLpIj0WOrDHl086X80pL4NTxSgGiv880GuvRX9bRYlYR2rQ3dvAnyWZsgEi1wqgWNYOd/5nxzcnyIT62vMmhjyua6qM9DN3m1Jm1yQSDt2WnSxs+YBpeGjbNQE0p/6Qp8xiSO4G2QAV1jdIEZhhHm3ovFx4scoCJQfiEhTF5+GgApMdarcLocunn6SQLZ//doPFpOKAT/5eHidK0q5x7eQwwuf1XNLRlFI0jWcVSuJ96VZWqENvPLgGiBOW4ZxEJ+L7+hkwGEIRz5K2Q8yPCcn1y+jtMLKQARmbC67xb6z443aJQEbyVzTeVa3l8fajX3b0jaWNmuyQDQeHGN52+ogL6KBWNfgX30e+6gtRMgDNwJTWIir27d5WqFzfWhJKXezHO9b3Q+N3r9pRjA4l+TSKGyZqw8C+6tHPx00jiwy92hDfcPj9x8ghj4dPVVc0t9gjHOKuUrYByEXGuxU8lv2mNsyw14d31vr1+CVpcgpoiZ4CJ64ZBCIbrQgHnq313wTBp1gIIPKY/4kanW+NSqcII9fVK0EuKyhkm8VsOLeJ/jzZn6CEXlFkLx2n75rjXR qZL9ufBl KZslsAaraIviOpB2x+LYNOO7BL0zj25Lwzj2pVYMatsfnGpMbIK96UK5bNsMgnmwC/qyEG23/xXnLI3QkwqlEFVwS6TwYwXK/9KruqNj64MpqAGV6suFkESb2Ex5anzLxEZC1Rt0UadbvLVlp76YZ6LxOOEu+mV1l+Qy9g1m4yHaXOZGKVh+TJvcsBD+7THPj9d0/KIK0ubp3owkkRaa7a4xds83wXbV90cE7vKUjG1srih7a7beu/yje6CNgqqOe82TS7tM07a8C7+5mLCEPdd7tApZdr/oBvZQOyHmOJpdHEV5g8l/PIxKErWKmdHpXpxfR 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: The comment on damon_sysfs_schemes_clear_regions() function is obsolete, since it has updated to directly called from DAMON sysfs interface code. Remove the outdated comment. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 1 - 1 file changed, 1 deletion(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index ed834622df2a..d50f37ef4eb8 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2341,7 +2341,6 @@ void damos_sysfs_populate_region_dir(struct damon_sysfs_schemes *sysfs_schemes, } } -/* Called from damon_sysfs_cmd_request_callback under damon_sysfs_lock */ int damon_sysfs_schemes_clear_regions( struct damon_sysfs_schemes *sysfs_schemes) { From patchwork Thu Mar 6 17:59:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005066 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 CA3DFC28B24 for ; Thu, 6 Mar 2025 17:59:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0C46B28000A; Thu, 6 Mar 2025 12:59:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EF2D3280003; Thu, 6 Mar 2025 12:59:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D41E028000A; Thu, 6 Mar 2025 12:59:25 -0500 (EST) 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 ACDA1280003 for ; Thu, 6 Mar 2025 12:59:25 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B1551122046 for ; Thu, 6 Mar 2025 17:59:25 +0000 (UTC) X-FDA: 83191888290.12.8B2928D Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf10.hostedemail.com (Postfix) with ESMTP id 1E33AC0011 for ; Thu, 6 Mar 2025 17:59:23 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="G/nQTPBz"; spf=pass (imf10.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741283964; 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=DnGjfzwePJI8dPbw7cgFIQJDRUdQE7hYnkAlMhYQ9g4=; b=Z12z98pipbCe1O/8UFoMRHO5aufGLPhN4QTqa1iu9X/M9s/yE89Tou5elT1k74H2MT4cpD GZGGVcYAo44aleXdjHa5/Da4jq10yoSmfdVr1X2mYenimjTDwzKfMV2IN9CYboWibWyUWT jxPFFNqqEaSUt53OvkXlOvHR+DBoNnQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283964; a=rsa-sha256; cv=none; b=bYNcvEpyPLF72kanWS83o8/3o04yVISIwt6NqIzgFN84udqJRnW6IHW4szEB+BpjkHg5Nu o8PtMXgz4ARms9pX/yXiBymare2zAalmUQUbXflwI3xCR1esf37UY1XT2z2k7l6l1JmwLd SMsjJkGc5RNMglWZs6+11emaoGbkomA= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="G/nQTPBz"; spf=pass (imf10.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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 nyc.source.kernel.org (Postfix) with ESMTP id C42F3A450E3; Thu, 6 Mar 2025 17:53:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1167BC4CEEA; Thu, 6 Mar 2025 17:59:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283963; bh=MsBfeedR0E0avwOTjpu2VsFxt43snXdrtNBJJKsBtYo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G/nQTPBzQrtpc5jfIx22kSnzs/KBPP9QCYN85wNLoqhwXrsVCXcSEy5U+RE50RNnl W7dqDVpn1T1x5/GZwFQTa0Uew+C/LSV/h/l5T07mMca38oJUdAJJYEQuq7HXQxrcKJ gypqc4h2FpWf0bqO7keCsYhEEP7IuJBBQIejEhxuZiq7v9EjFPGK2Gp3n5TAQsn4E6 ZSQVQCW+INhCa0N1HUhw2mMqzA2wiXsYqGCM3e2yYvLKhXMZ7Sc1tFMQUYW2Wmzf9P LS/b7ym8umSgYcZRIpoy6mswvy0yiAv/3qfwagcc/JgcaMpFQW0YnSzblrJF7pVLVO t18FzFkNOb65w== 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 09/13] mm/damon: remove damon_callback->private Date: Thu, 6 Mar 2025 09:59:04 -0800 Message-Id: <20250306175908.66300-10-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: zbooptkmy3r583q7q59su4jkrq7ud7dz X-Rspamd-Queue-Id: 1E33AC0011 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1741283963-909605 X-HE-Meta: U2FsdGVkX19w1cPXjPNyKldxFjfapdbW/uvNy3PvmliOh7q9n092xQQ2QwbUt8IlYrZYb8PBO9swn8SG/XK1LNsakdk0n9KKT3GqpNIl1cNdwtnERkEGe98KA8bkIKfwQqb1Qt9K1QrROrnhZHiZF5TSatxeGepCFoFh/yjMwHqiT8BiZL+6y5OkRdP6lgvAQYOY5LevFsf80ghVBBSlLonhjeT5DbdpZfAqktcR4F+Ug264GUYT6eWRqfwJ7YgaKUd9PKgBntHSWKhKu/SnV5psKEwYnfl0xHG41xXvwiePdBGMsrbTTrCBIehoJBjkzktFOd/XRn9DmlegHV7+VLcmVXTyhb1ylEZhimgxmM7O1nCfWzjsQWQFpok8sDreyXTxHEo4PkihaU+vcmvg8TBMpwItjQB3enI07N0LYhsAuqeUl744krwLCPFr2RrgdFTYJYOHepqaSeNdNTsBlAvltH0IAcU4CQjr1T/aBuANC7B4tJPewzHl4WvSnH1WYQtB7TEq8+8dOyPIFA6Sa0d31JyDZGMYewN3I0SWTaZq1sMiKs2XVrMdA1sn5dpN958QUJxF7ACkTcQ2BCp1g2NYY7VlA/RCPoS9J+SI5lEXW12P4lF4oB1XPiTHUc2rFmEXd117MeNpCbNE2t6aDYoxEPR2IMrgdnVEzomOpVJ1vVIPyAM8yBPldUWDJUuNjc2mWmPDQ52Mag8rtLQOwhIScFn+S4om7jXvhk5jtrP4cXHmQfcVeInzY70BVuDbWF82JvBOotyHK+r0G0qYxul+nN6IlJtM0K6PziAXIyNN60XvHEAyBBqZCLqEMAjPZGYcg2/W43EW/OCJyY1T/X8cbzgbKeDXLyHV3/5o7ZW85MBrkqc0lPlLVV8qb/HzkL+9gsWLzA3mwyfkqUWgR0z5DB5cmAlLt+2OPP3fmo/0+bm6JhWhLVK7daKp2WlYYR/MnwhNofYaWp9t3yR lnpgmxUb ONi7Vz7E3+gAvrXRJ0T3IJpWhZyZqf+MLPXvNYunS/6G0x2PzlTSkPnl3iM32m6gDDvbsWMK6/5LdUoM4FELQ2QCy6T2qPDjUM9R3bNxsBbcXUBl7EDElvLO3s0v2WdxF80YuuOEuIm+QFBt4N7g5+QW2cjdfim9m2kD2cufColk62luE0HyEfc65WvcQRJ6YdHVd4avnhJ1SgDAxuwNDfEE1rDmtacwJFCAx0mEXoqRn+XKSHOAxawL69bbwIulKTZOrgL1aVvncR19eOdbBaFbRbA== 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: The field was added to let users keep their personal data to use inside of the callbacks. However, no one is actively using that now. Remove it. Signed-off-by: SeongJae Park --- include/linux/damon.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index eed008b64a23..dab4bb0fe39d 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -609,12 +609,10 @@ struct damon_operations { * @after_aggregation: Called after each aggregation. * @before_damos_apply: Called before applying DAMOS action. * @before_terminate: Called before terminating the monitoring. - * @private: User private data. * * The monitoring thread (&damon_ctx.kdamond) calls @before_start and * @before_terminate just before starting and finishing the monitoring, - * respectively. Therefore, those are good places for installing and cleaning - * @private. + * respectively. * * The monitoring thread calls @after_wmarks_check after each DAMON-based * operation schemes' watermarks check. If users need to make changes to the @@ -630,8 +628,6 @@ struct damon_operations { * If any callback returns non-zero, monitoring stops. */ struct damon_callback { - void *private; - int (*before_start)(struct damon_ctx *context); int (*after_wmarks_check)(struct damon_ctx *context); int (*after_sampling)(struct damon_ctx *context); From patchwork Thu Mar 6 17:59:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005067 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 ABEDCC282D1 for ; Thu, 6 Mar 2025 17:59:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 99A5A28000B; Thu, 6 Mar 2025 12:59:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8CD7D280003; Thu, 6 Mar 2025 12:59:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7491328000B; Thu, 6 Mar 2025 12:59:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 4CC09280003 for ; Thu, 6 Mar 2025 12:59:26 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 651DD1623BD for ; Thu, 6 Mar 2025 17:59:26 +0000 (UTC) X-FDA: 83191888332.05.7CD322D Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf15.hostedemail.com (Postfix) with ESMTP id C251CA000A for ; Thu, 6 Mar 2025 17:59:24 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=S14s7Ljy; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741283964; 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=DgjEkhAn+mMvLmPP3h8lceD6E155+4EdiW7oFduyr9M=; b=7ZtLEw8nRtteBT7FGj0Cdu1Ap1xVVL8jdxeP3fhxDzWgZ5xAE4wun0RtQNWCGRuQCR749+ c6Y7C5e9UnZ93REf5LEniY3NOPJcMIQ38hKhrUoBn/eQcUTutOypZIujPt3UheZ4qneVFB DCDQzg+Br4zXxf+U9xOVy+zoymRQ8o4= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=S14s7Ljy; spf=pass (imf15.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283964; a=rsa-sha256; cv=none; b=bKH6lJoNviENvgWEJ5Uug9WuJO+/KEOcUoZZQ4+mrPbVqL9xjG4O0QpGcnH33GV3SFEhNa kh7WGAvuq7Grn6n0KWWHnoc0tZnRdt8rHf22plN/wehe+eDkEc48O4wPR1vQP4NqdgLz8R M4F5GcxX/5TSNYkDtY5UGvabbnqbENw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DE5D9A450DD; Thu, 6 Mar 2025 17:53:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3196FC4CEEB; Thu, 6 Mar 2025 17:59:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283964; bh=S+TNIBRN6YsZ8tOcYDy9gAmvy6YsqhXhgFNOQBl/SdM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S14s7LjyIEJw6vYOzHXcs45rJA5HM0smXIDKTwtGIGtVg5j4Sxt57Tb2BNY0Wgjwn xdgaz6Fw4jpwFIPd5XPf6KLq/W/hF9v2XhGQIy3gCw0x3sdRU4rGi4SwT91xRrwwOH KX3cZ0lWMRUJhp+OpdXdF4cviM/flmortjg5iANDvX4Ia+0gNzA/yQqhLzEY8LBBDp TY27V/oidghlrJ2674LYT4BZqSH+9+a2LBo+rApY0WnHbBOcSemaaayM0B11vDngc9 z0arz79RE8XCm17cIDz6LQwfsUJD3k6SJEWsh4QHFeKFBgHxYxBZQlfaPzrPXSg7IK V1xIHhSvP40rw== 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 10/13] mm/damon: remove ->before_start of damon_callback Date: Thu, 6 Mar 2025 09:59:05 -0800 Message-Id: <20250306175908.66300-11-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: 5qxy8kx7yf5sd4idfa63wuogy3raw9b8 X-Rspamd-Queue-Id: C251CA000A X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1741283964-12728 X-HE-Meta: U2FsdGVkX1/+2qPWPRmoh+FOSF2QrVIeyx/WVGj6EZAp98LEP04Xpj2uSR85MSeHHwIca9cVKeUwcEwtHepxNTHXyCAI7i1agPnuogqLhJLAEPJbJ2khEb64BvJl3MVRqUeQEZhLRL0sioNoexIAaaXTAqxFrtejBH6ci7JVUXkf7LO07xa9jPo8EvJ1MpmmwyO1W7FphEX5Wg6iPJSl1FmV5jjIHqkuopJl3FAfhabd/5H3oFRA5JIa5yJhKaM3j1TMp9jo35d+NzV1RQ8O19coQgsapp672MhpORk1tXH9b5aQic6yI+3IEIwd2fehHdcTS1RSj0JY9rgHzsxtSB7fbfNCD8k2cO+xq73AVcCbuq8zYQjCOk9hM/KyqAD2Yh3m4wrtnSYLxp3Svih0HLUPs03AVO4f8dP6+ADnC2GammYFrTN6h2F5utUTiY/j9j7AKxE7PqOUl7uId7ByQNYN2SDP9pPRhM0u8fTL9yAg0gRN7kEcTOLStXIsfWh4T/FohXNHVPavrkL+cdT5s3XYsTvHuVFZ43lzQ6HfTQmWfM8Y8qz43FXIAxdZxlE9F0l6/iDQPJ1ItgL+0mn/+rFsEnNw+8K6hccIfcRQPyeuQvmEMyBqm+ukpq5RLjdhd8XhenBDEAhJNDYDbO46oAtc3xqUrMDhxuEyH4b5syEUA9lqFdFCvUBpl91qXrP3nAmhx7V7WkzdahT0VNDOhHEjCUsuk+nx2tI/aYlt8j1L2GeWROa/+tk86eGFJ0pTAaUxGGKhTITiCAQsSkQzx6jSVKnItxVLvRNBqUJ1wdAjmBGhzstGQvkswgbaY64Cel8bNHAJiDKDlxtJ/FlDkTzM44ttjkUgy17GaaYJa9fB7Myqvtk706BdNmlpp5IubenO39rv4SMGSgX/i9ZgIjLKkWDnaL20xj5Vsm+rRqq2pCOjeaj9HvchB8dy9bsU6yhrHDq6hRVZp5+1DzZ ZPsPuJqG DCAyKbvfQuRaA6TJsd0vxkpx48lyXkiUoTNGqzk3l8OvvLxK9XP0iqrtPHU6ujYxWBXYULoN3SLy5o8U6YE8eBulHSNgK9GZ4TpZjIyCy7n16E944cMxSNDShRqpPTcKUQQ0hn9VmIPapeseYy/GmtBxBYkHEJxjXTAK2xG2F0LYa+jCKNUsSSDzI1TR+qqz225P/EIbDTqPR60Wk5x2UDeSkBCZdwsMr2JkSmhyD/0+LBE4vfJrNBseSsw8raxI1wmqpBNKn5K62SBuSVmsIn69f9g== 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: The function pointer field was added to be used as a place to do some initialization works just before DAMON starts working. However, nobody is using it now. Remove it. Signed-off-by: SeongJae Park --- include/linux/damon.h | 7 ++----- mm/damon/core.c | 2 -- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index dab4bb0fe39d..043de2408c65 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -603,16 +603,14 @@ struct damon_operations { /** * struct damon_callback - Monitoring events notification callbacks. * - * @before_start: Called before starting the monitoring. * @after_wmarks_check: Called after each schemes' watermarks check. * @after_sampling: Called after each sampling. * @after_aggregation: Called after each aggregation. * @before_damos_apply: Called before applying DAMOS action. * @before_terminate: Called before terminating the monitoring. * - * The monitoring thread (&damon_ctx.kdamond) calls @before_start and - * @before_terminate just before starting and finishing the monitoring, - * respectively. + * The monitoring thread (&damon_ctx.kdamond) calls @before_terminate just + * before finishing the monitoring. * * The monitoring thread calls @after_wmarks_check after each DAMON-based * operation schemes' watermarks check. If users need to make changes to the @@ -628,7 +626,6 @@ struct damon_operations { * If any callback returns non-zero, monitoring stops. */ struct damon_callback { - int (*before_start)(struct damon_ctx *context); int (*after_wmarks_check)(struct damon_ctx *context); int (*after_sampling)(struct damon_ctx *context); int (*after_aggregation)(struct damon_ctx *context); diff --git a/mm/damon/core.c b/mm/damon/core.c index de30b788e13a..8904b3c079e6 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2407,8 +2407,6 @@ static int kdamond_fn(void *data) if (ctx->ops.init) ctx->ops.init(ctx); - if (ctx->callback.before_start && ctx->callback.before_start(ctx)) - goto done; ctx->regions_score_histogram = kmalloc_array(DAMOS_MAX_SCORE + 1, sizeof(*ctx->regions_score_histogram), GFP_KERNEL); if (!ctx->regions_score_histogram) From patchwork Thu Mar 6 17:59:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005068 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 89FA5C282D1 for ; Thu, 6 Mar 2025 17:59:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4CE5828000C; Thu, 6 Mar 2025 12:59:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 452A4280003; Thu, 6 Mar 2025 12:59:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CBAE28000C; Thu, 6 Mar 2025 12:59:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 02B28280003 for ; Thu, 6 Mar 2025 12:59:27 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2B7CA1CDE75 for ; Thu, 6 Mar 2025 17:59:28 +0000 (UTC) X-FDA: 83191888416.25.DEE530A Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf16.hostedemail.com (Postfix) with ESMTP id 88FDF18000A for ; Thu, 6 Mar 2025 17:59:26 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=t43p2Qrd; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf16.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283966; a=rsa-sha256; cv=none; b=52jECVwI2TcwmnJEL4rRvLaX0XdmshA6O756eBduGJLcRcoQew1fNhOhLT6vdW6SY51uJc u7tuj/H1hYdXpd/jjc88dLPJzvKXdNBY3DTQXgX5fcC8KwZBWUJH8kP2CyJZgF0Ck/0p4t UnarLxTkRDWMVVrYTNFC1hqc91W5zmw= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=t43p2Qrd; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf16.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283966; 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=mrc/aUUJ9kmlFuWkVIUcPXnflnB3kojMS8xZfCfjiUI=; b=IBW3UnGQd03D+3TCmw7DlFxQGzWTfRlWIXhYxz0ldEbQVRyoMk+XcgxmW1YYb8gFgMOdca /dOtOBXP6No91RJDyv4VeLwRW4PEWunalMcg8z/MfvDZ7AS4Su0Zu44x0IpCd0rDCAIRI9 M1e7YDQu/KdMC8/cDb8whpAVq5dnZAQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 088835C5812; Thu, 6 Mar 2025 17:57:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56B46C4CEE9; Thu, 6 Mar 2025 17:59:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283965; bh=I/JHvzw57UoJPSQTgW4gksymyJzz98SL8NUvb1KKOF0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t43p2Qrd5Bb7hd33jVdLTrPc3yYngQWh01UWIUXiyNaUQsIeXBmLhrndvro9mNHv2 zfYl/VNQsqQJu0YBC9jinTCv46wgeHwLPdii9KyhU2jcPmfRG6y2LcrX2uvE4TEbA5 /oN5lHeLwafXy7EMGqRii5igXdClJvOyse25zjqBjKief9JXj9/AszDV4bcSHwSs34 RYnmA0VahnP38wsXOymiSLn9KTZvrou8KkPEIqHOIi3gfAQJQBMyX9cod5fMyeIedR vdLmClx/gxJoJLGVb0B2OpPlU2i88kWJzEG5BgOglyKaE8EmtibgkEq+DG67WP2bAW rMfnSYuiw1a3w== 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 11/13] mm/damon: remove damon_callback->after_sampling Date: Thu, 6 Mar 2025 09:59:06 -0800 Message-Id: <20250306175908.66300-12-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 88FDF18000A X-Stat-Signature: ckkmsaze7iap33arh4xmy1h5hrwrn3nq X-Rspam-User: X-HE-Tag: 1741283966-975043 X-HE-Meta: U2FsdGVkX1+VQhE527pYzrFQtkQVVxkuTNEYbI/h8/7Sp38VyqkNf5osXSnR+47BaRQ8MgVe6ctrE/4Qgg+S9rP57KUTg2DgtMCp+7YaaS/Owayt+mEKlPVzqvG925jIIdeE3yC/W9r0ZU33NQqgTfvUTyYCBQ/52IZCx4lmVkqSf3oIsDK0Z1pgJ8HXAq0m7rT3u5WxCm8USi7FTHOnUjiRXIMhgVzgQ4AuyhIa3P21gxHsT7UVvEdBXM19VOioLWGgvGRjTLSU0W07p30NIV1bMEZd7ZbnCADliDZmCXQr+ZaNyDF5/KYtV4Rb6VljFYxu25Q4cactjciIkbu/p0YHBa4OgxFpeI/usFXHE27sVnhvyvSvr00O4g5zCTUi3XQ5c1F8egPmNeA/2gNXi/arOSMA2z7V08lGCc/YVU2BCZo0qxApFO6vTUhMoXuj3WKOnswRQIiNkKs0LIT1JPdcpUqoLsWgVPfoK+V+visIM7Bt2kGkDBjVW1LGeBXmrb7gQHroulC2LnyUHsXfJoDOmj+1mSp3E6n04SH7nBn6Zp4AWJWi8BtaY0E5pmLULFnmyBMxMYSAY6bicVKkHeMLhIUPReW59OQNjGRdBKCuQEx/BEFl3h9gONcZmWVcx2I2USMCtV2io9fDcrf0ItbfBzx8PsgBoueGx903Il6CFItTinRjU+UVlFKHPXjb00jfmgyitZMchkUrDrwnv6eAESa9iq5fqwp3x/FC9DNMhtJ5VVtHbJusf13DYLmSM+bmxgtYG6ztFZIGBUil5XsgohK1Ot5hqyUJfRhWHImD9CMHDHNGbcgjlIDI0/JJeSx4uRP5h08o0abqOzOm+yB2QfYibaCABKCWCziG7iFOmNyWm3QcRzHW7u4QwKlVV8FZ2Dmr/2VOHEQKohS50ES51bLEiSuEAFL05a30IkO/Vki3zOmtAlVYdUqj/E19TCNWF2ctfD15MzMATTA iNjy1J57 +E5/YwjT4NnwROfAyJiPeEISXy/fyh3MK2W35L+4NeRyMd1R6ANeHMcj2buSxTEVnC8CRTiuXPQZyTmbsERKCjvl9srJ4X2qkDPZyqywG/rwYLdJfIpDrCjaWWL+YQN5VyqKm31taoQYHXTKpYXsxpt8p1c3Frn8MFwzB2Tc9Zn+FvG3GhUZfbD3YVLmO1S1M/M7x2qzhxYbSidQ5P4bpMm4DfhoJ2/W/VeTLfpfKv8mlhbr4Dq5v0bThBsaQhDRasVjsjpfYoeqbGaYsB8NvSY28Kw== 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: The callback was used by DAMON sysfs interface for reading DAMON internal data. But it is no more being used, and damon_call() can do similar works in a better way. Remove it. Signed-off-by: SeongJae Park --- include/linux/damon.h | 11 ++++------- mm/damon/core.c | 3 --- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 043de2408c65..5aa277f4c948 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -604,7 +604,6 @@ struct damon_operations { * struct damon_callback - Monitoring events notification callbacks. * * @after_wmarks_check: Called after each schemes' watermarks check. - * @after_sampling: Called after each sampling. * @after_aggregation: Called after each aggregation. * @before_damos_apply: Called before applying DAMOS action. * @before_terminate: Called before terminating the monitoring. @@ -617,17 +616,15 @@ struct damon_operations { * attributes of the monitoring context while it's deactivated due to the * watermarks, this is the good place to do. * - * The monitoring thread calls @after_sampling and @after_aggregation for each - * of the sampling intervals and aggregation intervals, respectively. - * Therefore, users can safely access the monitoring results without additional - * protection. For the reason, users are recommended to use these callback for - * the accesses to the results. + * The monitoring thread calls @after_aggregation for each of the aggregation + * intervals. Therefore, users can safely access the monitoring results + * without additional protection. For the reason, users are recommended to use + * these callback for the accesses to the results. * * If any callback returns non-zero, monitoring stops. */ struct damon_callback { int (*after_wmarks_check)(struct damon_ctx *context); - int (*after_sampling)(struct damon_ctx *context); int (*after_aggregation)(struct damon_ctx *context); int (*before_damos_apply)(struct damon_ctx *context, struct damon_target *target, diff --git a/mm/damon/core.c b/mm/damon/core.c index 8904b3c079e6..726e581904e5 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2431,9 +2431,6 @@ static int kdamond_fn(void *data) if (ctx->ops.prepare_access_checks) ctx->ops.prepare_access_checks(ctx); - if (ctx->callback.after_sampling && - ctx->callback.after_sampling(ctx)) - break; kdamond_usleep(sample_interval); ctx->passed_sample_intervals++; From patchwork Thu Mar 6 17:59:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005071 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 2BA9AC282DE for ; Thu, 6 Mar 2025 17:59:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 35507280010; Thu, 6 Mar 2025 12:59:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B78E28000E; Thu, 6 Mar 2025 12:59:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 157B1280010; Thu, 6 Mar 2025 12:59:44 -0500 (EST) 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 E9D4928000E for ; Thu, 6 Mar 2025 12:59:43 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id AA29082367 for ; Thu, 6 Mar 2025 17:59:43 +0000 (UTC) X-FDA: 83191889046.10.3EB4D7C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf14.hostedemail.com (Postfix) with ESMTP id 933FD100010 for ; Thu, 6 Mar 2025 17:59:30 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Sk3x0+u4; spf=pass (imf14.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 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=1741283970; 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=Ob4PcuTI01YyMkQZ7JYOhWiahdbH8Wl4NUrcz0Wut9U=; b=Op/ISnfd70CHQSxRESgjOdlW9JYqUuGA14KVImT0V2yJHRfKTaHAla4qQQgzDxlrcUP6x4 fWFYOtGdz0vU6bingEtNXxuEDR9XL72XvyIKgPIP5v17RHgnu+t96dibtap3lkmp+BKaeP inNxDJPnZPlA29shZDme+Nbn8dQYLeU= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Sk3x0+u4; spf=pass (imf14.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741283970; a=rsa-sha256; cv=none; b=yCV2SIV0nE9fjYEtw4z+WgoBuXv2WPJoFAMTx+uIWu64kL7TqwyojHOu88chXIjlou13Gh o3g5X27NX8t67uw+PtCzlkn9c7bjaq9Q0vj/z4uzJsU6R1UpZXQ74Ro2O3hjfVoFJUebad 8NSPO3I897nQFRt7h3UwyPmgkZiGv1k= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 0E3545C5800; Thu, 6 Mar 2025 17:57:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FAEAC4CEE8; Thu, 6 Mar 2025 17:59:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283969; bh=QHuacpUAdZsjxvC6RVrkNf1AvYwnsyKAd7KvFaeWUTk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sk3x0+u4ZcspuwW/TvqCwEpHahJE8ZVI25fbwQsbquSG42WFrMto0jBxMQxX0igvi 1jZHAa8jDMwg3U60RsOYxGmdAo7yFx9Y7f5NBx+WMFILCvhl/WgabpvPfI+KY9PZiT dA7wyZ6xfhjD6x3JJg8n643rVm26DxgS+xtQnBwYLRHCSdYSTloha9kmSxomVWg54x Q19q6sw4KIw4dKyoLqU94Gp9mEVkAieXW6kKFgIn1Gk+EFmk2t8sTH7w5GThOTqkgr BkiaP/5lOMx9kAq8uwLj8LUWn43Nl3RcV28Rc0VN1jW4R5LDkNlQkHR0T6oyJo8L6Z NajMWp8fAR+UQ== 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 12/13] mm/damon: remove damon_callback->before_damos_apply Date: Thu, 6 Mar 2025 09:59:07 -0800 Message-Id: <20250306175908.66300-13-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: 6yuehacqpu1jntaq67bu5uus1ptrsbap X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 933FD100010 X-Rspam-User: X-HE-Tag: 1741283970-379654 X-HE-Meta: U2FsdGVkX1+iK8aut6ob1CA2SlpM+WlLmCrbkkAjS5LvR8UQOJCmtBMR/N55Sx/bN9AkXtzKssZ0c1mCfngKgpNyVeHixq7bLFQHUE6A05dvEFS72adARlP+NY4C/8bFio4WfrfYLlGpymPwGOFkzaNNXuXsbb/F87CSmv3gtpgTx3JLElbyrYjncvxUoNaGHh0NaW5KULleC4k+aMqpLIx86X18WcSNohjLvi81pSpPF7Ok7YLcPOhBIsNTONN4G8Xl8OGhjXogtYR7W1lWeomgQO0i1+PoYQ0QFOIb+WvRtFFCHo+Fn8l/8kapGG3BXWTI4Z1UjcCSy2rWB0UtuMpDNfPCN35A00qZDDDrRp1n9w6bPwaxCiX6okcv3XaqUh69ItvCiDrBZHUeCwDbwuCjpVTeRPeSVOK/v3zcWeCJFfx/J1CT1TeGb3KtGHCxN0dKfR7UpVo/HYH0W6DI7Lmhgux/ESKVM0kIq2rzUj1zQCS9KRUM+g4z9zEljSwoTN8mDe9FmGXJS9PfvmNCOS6VkKLZM8cyBTH84gNd+eyMTlth+TfCZcOXBjIosDRwjWpOEW56gavfE42+lR9xJRLps7rPJNUnBGGOJb7teR5YwVhfDhp5QNd9O7JCkS3iNEs2QY9duFbgnemUGdNjFiA86Jpd+J8N8cvLHkJw5abnlYqvgjNs8IMs5n7fkBt4Di4SCNs1wqgnM530vQQ/HUsUxzR8waZjwBoJWBNMq5S1M4DeZQcxqaHY2QzqhwWQxHdA8MIME90vv2HuBxsKmciIt9BXnPX7p+lXBaabVM+nAFi/0xgt/Zc+SfcatOiRsRdUTeNMtTE1qknACqHDa3GWFWQ7S75FsejHIntTDZ5NY7x4yohs5j3FCtZjHX05hSO+iZD07KzavTNV5jTo2kLweE5aThkJS4i8IFZM5BomiHqbcwJaw64R4oYZ5MEMCiBYY6IRmvVpYrfBrc3 UHflPNup RrPQydjqM51RJRBrzSdgJrDjbj0J2QG4TaSymffKdrkKnyPMskcW0TV/0xmKO5maLasfNwzPLfTn+yZlCyJS1Yrb4xRBIuQel4WlsWzyOdfibHb5YygyKDC+OQBYh49Kargoe49E14lVylDLdRH1dpPXmjjS+aQtiqWQEzi6Mj9uPrp+V84SXEgvojTfm68rGZKDquWAtFlI7VU0wpELWgprfWszrg+HKWrJOtfKgKg16v+VHBR1vslFscPAc3X6LdJZfGVLUehOEmtL/En+bNlJIzA== 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: The hook was introduced to let DAMON kernel API users access DAMOS schemes-eligible regions in a safe way. Now it is no more used by anyone, and the functionality is provided in a better way by damos_walk(). Remove it. Signed-off-by: SeongJae Park --- include/linux/damon.h | 5 ----- mm/damon/core.c | 13 ++++--------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 5aa277f4c948..be7b281fb922 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -605,7 +605,6 @@ struct damon_operations { * * @after_wmarks_check: Called after each schemes' watermarks check. * @after_aggregation: Called after each aggregation. - * @before_damos_apply: Called before applying DAMOS action. * @before_terminate: Called before terminating the monitoring. * * The monitoring thread (&damon_ctx.kdamond) calls @before_terminate just @@ -626,10 +625,6 @@ struct damon_operations { struct damon_callback { int (*after_wmarks_check)(struct damon_ctx *context); int (*after_aggregation)(struct damon_ctx *context); - int (*before_damos_apply)(struct damon_ctx *context, - struct damon_target *target, - struct damon_region *region, - struct damos *scheme); void (*before_terminate)(struct damon_ctx *context); }; diff --git a/mm/damon/core.c b/mm/damon/core.c index 726e581904e5..d6271fae4dd4 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1731,7 +1731,6 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t, struct timespec64 begin, end; unsigned long sz_applied = 0; unsigned long sz_ops_filter_passed = 0; - int err = 0; /* * We plan to support multiple context per kdamond, as DAMON sysfs * implies with 'nr_contexts' file. Nevertheless, only single context @@ -1771,14 +1770,10 @@ static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t, if (damos_filter_out(c, t, r, s)) return; ktime_get_coarse_ts64(&begin); - if (c->callback.before_damos_apply) - err = c->callback.before_damos_apply(c, t, r, s); - if (!err) { - trace_damos_before_apply(cidx, sidx, tidx, r, - damon_nr_regions(t), do_trace); - sz_applied = c->ops.apply_scheme(c, t, r, s, - &sz_ops_filter_passed); - } + trace_damos_before_apply(cidx, sidx, tidx, r, + damon_nr_regions(t), do_trace); + sz_applied = c->ops.apply_scheme(c, t, r, s, + &sz_ops_filter_passed); damos_walk_call_walk(c, t, r, s, sz_ops_filter_passed); ktime_get_coarse_ts64(&end); quota->total_charged_ns += timespec64_to_ns(&end) - From patchwork Thu Mar 6 17:59:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14005070 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 35CDDC282D1 for ; Thu, 6 Mar 2025 17:59:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A92ED28000F; Thu, 6 Mar 2025 12:59:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9CB3C28000E; Thu, 6 Mar 2025 12:59:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 86CCB28000F; Thu, 6 Mar 2025 12:59:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 64EFC28000E for ; Thu, 6 Mar 2025 12:59:33 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 7BE52A9FFD for ; Thu, 6 Mar 2025 17:59:33 +0000 (UTC) X-FDA: 83191888626.07.9DA2BDE Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf16.hostedemail.com (Postfix) with ESMTP id CF1A9180016 for ; Thu, 6 Mar 2025 17:59:31 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KLOqrOWm; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf16.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=1741283971; a=rsa-sha256; cv=none; b=22sCYi6zfHMeffHZTLJiDt/x0CYh9gnBieGss+y1s4nKohodpgYh+W7NZC2ajvRSjYo45G YqGqYbW1ahNWo6+3f3G3zZMi5VtbjZ5arLE0ESmM5N0TXbil0EGGj+PL2w7iyPc8wHRNGT 4AEZ68gjCMLV4a13TJMtFblR2Q1wGd0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KLOqrOWm; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf16.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=1741283971; 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=OTmmSMPWuAchNQ3rehtZGvWkVJW9LY/zdp2XUaDw66k=; b=BHQ6JV494HAdCJr2UF4lfIq6+nIEbgR/j3+R55IyoWEE36Bspf18qXqZg0h1UGne0rQqb6 rAp0dN8LtrFnD4Aq51deVzt1cy/Y0Wv6rN6QkmzwPS2qCc5N1CibELEk2drFW0c4ijrcZT /77lLp8znD61rleX5XMIvIytDjhX1Ds= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 65246A450E7; Thu, 6 Mar 2025 17:54:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E640C4CEE4; Thu, 6 Mar 2025 17:59:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741283970; bh=Rn+6YydnhrV6FETkcIfmvP4YuDQr4oebn96i4+L/goY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KLOqrOWmjdNfeRf4uTFfilXrUOaL0GSy6hMQWsxUT2If3kQvq6UTPuQULqnbC0NZn 9fo5jXUGPK0CFGpdYaOcnKVIAEj6wx/i3uexc3urCzkplgnA6CiTAnvtxiq2JRXyGR uqK60K9LqCudw0fkFgiyspQa41ohjAmBNmgVfh4u0/PSzjxTlek38b8SFnPpeGeThw FKTmWUH3bxOdyCiVdpMeDsqqEZ0uZuTRsCAbxd5XT8+O2SXNfC/BjX2GgyMl8iM27O gCjMozI7x4UUkqFr3/B1s+4nUS32ekumybJfXPGl99tntavBZW6wAgYyJt+HG5U1Sn hOgCwGYkq6fZA== 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 13/13] mm/damon: remove damon_operations->reset_aggregated Date: Thu, 6 Mar 2025 09:59:08 -0800 Message-Id: <20250306175908.66300-14-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250306175908.66300-1-sj@kernel.org> References: <20250306175908.66300-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: CF1A9180016 X-Stat-Signature: dzspi4r896fy1nx8a94oawzt1y6woj4z X-Rspam-User: X-HE-Tag: 1741283971-141678 X-HE-Meta: U2FsdGVkX19Oh7mje/cAy4pmIuNf32P4ULv7UcH0Q6/xuUzPF8PRjPQ8WCHZNckWNuKOyQe/8bGGRmI3SpERwtNdfuxN/cfh9RHXz0292d8ItBRvT5eGa0FLnFs2Il8YzIj/P419oaSRTdxiA6GMPpCBIXPB5p+NW9dhnuotjJgUFiTWNO/jlBm7bhAajdlB3fR3E71W9oG2sTCAIFkNsxOSbiXjcj4ylXqiEk5kYB2iLlAMuELNKSzGTfn6NdIhsIHlQ0Oil5ak7MC7ESpdVOVIfixQlu2YRJ9UEydQEsQGzrH2MXOKRFG1fmPd/zHN37QiyOdjXeTdXsKIF4zhQ3pXiLNiAdR/5IuSkdULmUu4jdiK0sHREVk5/AjXkp+mhX/cylT6atkxBLjQFi2KLRxxs5zNowR3VU+yuENNqUrPV+GAN6ThHDzlZF0cWuAor6w9s1TaMqcVMu3Yq1mpQXn5K2AWLl1t745Urnvv6Qmzi8pZiwCh740bhIDhKDK01DDTLR/VifU4HYDPfikUtiN9cP+qRPgYHv4F/UsVNBvCoFKOrZc+aqFeX8vAsj4ThOiQDeOD1VpFR+JMSieliNkvzkS3OXxe15K5UVnZsNsrkp4jLge26QbTSSV8rboiYYFDIPOqQ5S946Axjlcv44Bil3DmUEihQaz2EG+uAoHlvXPLQlWSm8p6+EIwSdopDOXDRjbSc4X0FEQffoF0mJ6abF6T8ZnJ/E8ltz/2jqBi6PMl0QW5DtLvH3WO+2fTcWzWS4WbKPm51w6mBKAJaU7K7Btzz9UtU9A8uuDCmjGai87jQFn/A89Ee1zHHYqy06Hsis5LkNOkA337YNPaR0ZJLqJVYotpFnVQFcNgXXfO8/OGksgF4lkuyvuaiZopa+ryR6ddcorAYb4Ri6Aeyhza4eH9948W8zshznzNwJn1ftYmQkMvieWWop4LdEHhsMM5nwG+FktgZiN5lKp +G3bW7Rz HWEeKM/L6MtZT0FGnZ3fhaPA2XIk8v/TuYAN2wDSYsTQ+ag1DYqsSkug6qKcFAxGAHoLqvDKgqfvn+mmA56I5snq4WDjAm5QwoHevzd6ccUb0G0XR5ixXYp6t7pXyKWjK/hjW0nnRx8Lxicqavq4eM7k174tlWQn+w0wsxuRLdDFngkmB29wL/KFO9Wg880DlU3LUKChKGZRggxOu0kdHzvec19/2NDUmsXk+blbwG/BMRkx079g+GIfbs3k4CxqJm/JBNFML5n0WutdExR00qoJ99w== 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: The operations layer hook was introduced to let operations set do any aggregation data reset if needed. But it is not really be used now. Remove it. Signed-off-by: SeongJae Park --- include/linux/damon.h | 7 +------ mm/damon/core.c | 2 -- mm/damon/paddr.c | 1 - mm/damon/vaddr.c | 1 - 4 files changed, 1 insertion(+), 10 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index be7b281fb922..3db4f77261f5 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -542,7 +542,6 @@ enum damon_ops_id { * @update: Update operations-related data structures. * @prepare_access_checks: Prepare next access check of target regions. * @check_accesses: Check the accesses to target regions. - * @reset_aggregated: Reset aggregated accesses monitoring results. * @get_scheme_score: Get the score of a region for a scheme. * @apply_scheme: Apply a DAMON-based operation scheme. * @target_valid: Determine if the target is valid. @@ -554,8 +553,7 @@ enum damon_ops_id { * (&damon_ctx.kdamond) calls @init and @prepare_access_checks before starting * the monitoring, @update after each &damon_attrs.ops_update_interval, and * @check_accesses, @target_valid and @prepare_access_checks after each - * &damon_attrs.sample_interval. Finally, @reset_aggregated is called after - * each &damon_attrs.aggr_interval. + * &damon_attrs.sample_interval. * * Each &struct damon_operations instance having valid @id can be registered * via damon_register_ops() and selected by damon_select_ops() later. @@ -570,8 +568,6 @@ enum damon_ops_id { * last preparation and update the number of observed accesses of each region. * It should also return max number of observed accesses that made as a result * of its update. The value will be used for regions adjustment threshold. - * @reset_aggregated should reset the access monitoring results that aggregated - * by @check_accesses. * @get_scheme_score should return the priority score of a region for a scheme * as an integer in [0, &DAMOS_MAX_SCORE]. * @apply_scheme is called from @kdamond when a region for user provided @@ -589,7 +585,6 @@ struct damon_operations { void (*update)(struct damon_ctx *context); void (*prepare_access_checks)(struct damon_ctx *context); unsigned int (*check_accesses)(struct damon_ctx *context); - void (*reset_aggregated)(struct damon_ctx *context); int (*get_scheme_score)(struct damon_ctx *context, struct damon_target *t, struct damon_region *r, struct damos *scheme); diff --git a/mm/damon/core.c b/mm/damon/core.c index d6271fae4dd4..db357892da74 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2489,8 +2489,6 @@ static int kdamond_fn(void *data) kdamond_reset_aggregated(ctx); kdamond_split_regions(ctx); - if (ctx->ops.reset_aggregated) - ctx->ops.reset_aggregated(ctx); } if (ctx->passed_sample_intervals >= next_ops_update_sis) { diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index fba8b3c8ba30..b08847ef9b81 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -621,7 +621,6 @@ static int __init damon_pa_initcall(void) .update = NULL, .prepare_access_checks = damon_pa_prepare_access_checks, .check_accesses = damon_pa_check_accesses, - .reset_aggregated = NULL, .target_valid = NULL, .cleanup = NULL, .apply_scheme = damon_pa_apply_scheme, diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index a6174f725bd7..e6d99106a7f9 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -710,7 +710,6 @@ static int __init damon_va_initcall(void) .update = damon_va_update, .prepare_access_checks = damon_va_prepare_access_checks, .check_accesses = damon_va_check_accesses, - .reset_aggregated = NULL, .target_valid = damon_va_target_valid, .cleanup = NULL, .apply_scheme = damon_va_apply_scheme,