From patchwork Wed Feb 26 06:36:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991599 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 93801C021B8 for ; Wed, 26 Feb 2025 06:37:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32607280012; Wed, 26 Feb 2025 01:37:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D48E280007; Wed, 26 Feb 2025 01:37:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 176A7280012; Wed, 26 Feb 2025 01:37:08 -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 E9535280007 for ; Wed, 26 Feb 2025 01:37:07 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id AB0D5A2B80 for ; Wed, 26 Feb 2025 06:37:07 +0000 (UTC) X-FDA: 83161138494.10.109B2A8 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf11.hostedemail.com (Postfix) with ESMTP id 2935940003 for ; Wed, 26 Feb 2025 06:37:06 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JNjpdu0n; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 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=1740551826; 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=d/1UXdPzQmSuOeROSiHvlbTA0nW1Xg0OTL+857KR9EE=; b=lB0R5pMRgcua55WpbYh4C449X7VKwGu+yy8uFSNPtoDLNyjgBsxM40GCdOGv7BR7orAU04 BWLIIy9BfButVOpFsLPID/bDcCd7vbQZzRxz4nfgNtpn9bKmUJulI8ciRkLRdjbIPtDejD J4XmJBTtp56j69DFEnvwhBo2F6F2wGs= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JNjpdu0n; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 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=1740551826; a=rsa-sha256; cv=none; b=Np0ibHYdedSPf6KIFNBodbBSAlSuszVo8SMNoJ0Tu/AYrJmd8RKe56ygcsoh4PISlDnaHB XeCSR9obMCQc7GfXbcczxRx/6QiPa05u9ycQ6vrKmDqTLKPgVOldAaLubwYTWjapdwKWCW PylNkjvEe2vkFtFaezZYTNQC1YiP8D0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id D6CE761223; Wed, 26 Feb 2025 06:36:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE5C5C4CEE2; Wed, 26 Feb 2025 06:36:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551816; bh=5n9xRLBBKD40DxaNJxpmX5CbdO8tnA9vHZtFNqo0gek=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JNjpdu0naIeVD/lEw6HDtDk+7/Wad7TrQhcHR/+50Bj4hoe+y6aNGrXqIPF90UhX3 CAnGFDEcAhmNDIxn88JGEMRBGoudUaSX1NKQm0FkOSuDs4JRdCbeWv9hBjD8RTZW2T zX69CheuLIzZ05UaOf95ACvkggJVfNhwABo1lFEvgGuIkuSaQAIMrQXxFm5i/Al1uH tjGjfTNdOXeAmXEv7ouuwwFqyyTs2zuGY+USl8gVaBdkqXtugtuXtprfoyai76z29b HKE4HYcVWyDaCKJnEBczKxPQpf3QrO9z32HKGAEsFMHouBXLW2Lr3ZnlOfa7uRonEm ZbDqtOQl08BpA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 01/13] mm/damon/sysfs: validate user inputs from damon_sysfs_commit_input() Date: Tue, 25 Feb 2025 22:36:39 -0800 Message-Id: <20250226063651.513178-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 2935940003 X-Stat-Signature: urkund1ay7ipfd4r167zu19ma9tmn9ky X-HE-Tag: 1740551826-86850 X-HE-Meta: U2FsdGVkX19rdBCrxDkIxk9anXdeYKsaebSHn33lmvIp5vCxRLTf5muIrrj3gBTx/RceUjtA7wPlfnYaccniNUcHTmdFvhdVmMY7cgh6f7hsnHGNn7yZj6VlUxGy1ysxUDqgbsKod7eFuRnyMrnrYNvJ38ekPoygQRsOCq4flanPBJ3tKfffcUWqC+AlnJ3U+g2km9MPCboKFonZ7F0ZuiK9NEDhNgw+H93kNDYGgfNR5ZyGzT5RFA13FGJpW/g2beiMK64joX+LQ6SP3W4vs00AFFDRK3x/De/Q/33Nu7kY22OTnJlVqfNdnZ6a1XPy8PLFwAI6CfO0i5Seni0PdJGeVNuINwnqjcbsCUxPkgBhgcFfyAdDHO9oujI4pVrCHTeYugicya4DjqIgYYiJMGqQCstWoGf0EOVcV7/Sf3KqcQw+6HdvLph4KG/o2VHEwQj+3AqAnIjhzBQnw5oNchzyKg6Zu15icUAEdrxtoq7Y8TCqcCGX1o+9yNhtrXAIv98mh0JKAN4YzN/nGQ59B44FsI1uBLTEKIliCsNvJubXLlyXbT007usj1vrsbV7g5VUbF9viHS6SVJ56aY8xk6ILFt3Bd14HXx3SxAjX1JX/JsDTba7G+KwaEPCg+jiR1jRex3br2UzPCbsAM3CGXk5W8rTy3rk/Pwn8PB2G8x2mGjPeIeOvRuEwp9NCdIPikkIh9S5M0XcVIrEkzTo4uEbiq0nX4r0c7OR9gpT9BS6SBgFlWze/xxBkaxblOlQzCQAwbPtd3nKB8RHNOTt0jYhfaWEtFSIZYEgJI/CbipqmZ7O8MGdcUJwpZ7NSKX45B5x0WiY6JcPpLczuePXQ0DdRJco5IoVZqkMgfQg5SSHMPs65hlKiGAEZCh2JWKmWm7iyk9zQ3iT0UGBObRwoeM9KDS8wP5WZnrn9hyVG2nWmgtgyti8bdwZs9wpxXrVwXESQfMMj/A0XqrhB165 S2wKFZ7s T3NDctxNVvpMgjsWthHuMhJVv+qmdJRiDOI7TbBEEhrCtL/SusUpLtIXCG+AyLBfn2rAKetVEqdGi2Dsg+pOtklxwlDISQKCZyhgRjYlO9a/LoWpgpmvlW2c3sxKFnTbWh9lC7CFdJJn5SkO+8O22p++8zIJrsgv+hDFYx1DonUjxF8nr4cm7BNlPOoSxSDaMmNb7gXylF3Ox3YAQ8PuaR6NbuCDsk83MctxHksgZRKb4Rn/qg52ICdsgtWhY8T6bnGYFyZKmuHBWmJkzkTqz44sxkw== 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 simply tries committing the parameter without validation. If it finds something wrong, it returns error without reverting partially committed parameters back. It is safe though, since it breaks kdamond main loop in the case of the error return. Users can make the wrong parameters by mistake, though. Validating the input parameters first and returning the error when some parameters wrong, while letting kdamond continues running with the old parameters would be the better behavior. This behavior can also make damon_call() carrying the online commit instead of the damon_callback hook in future easier, because damon_call() cannot directly break kdamond main loop. Implement the better behavior. 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 Wed Feb 26 06:36:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991591 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 27B61C19776 for ; Wed, 26 Feb 2025 06:37:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 966FE28000A; Wed, 26 Feb 2025 01:37:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 91547280007; Wed, 26 Feb 2025 01:37:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7DD0028000A; Wed, 26 Feb 2025 01:37:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 5FE3A280007 for ; Wed, 26 Feb 2025 01:37:00 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C4EF8160C2F for ; Wed, 26 Feb 2025 06:36:59 +0000 (UTC) X-FDA: 83161138158.01.0CCFDE8 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf10.hostedemail.com (Postfix) with ESMTP id 221B5C000A for ; Wed, 26 Feb 2025 06:36:57 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QEaBgAC4; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.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=1740551818; a=rsa-sha256; cv=none; b=zEk1Gz6jcAKK8stIoTtuzqyulgcW1dAofkpdQwDrPvQLHAFXmPx7ou1/b68TlF/2nTsan1 mO3ZYJ9pujY7YOXoYyb2T/KGxNkMd7ClAv+7qY+a11xV/K62o1CMqECY2S05bC728OnYq+ B0ez7vkxoE9MQky+uMEx1ETuucZPkKc= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QEaBgAC4; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.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=1740551818; 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=NSeKL/sNvHQoUV6jIy2gqzYh8p2nAZg3FrACSQVo9pY=; b=gs3C9nEIp3X5umRbv/PD3BwGIOF7Rtpof25IUGpP2EhvX3YqL1UTp0QEnN0WSkejn3l0K4 T6kZ7L16gTFI/zRW1ZuBMknSMjagTk/wLNSoAkfYPD1en6z/t/fvcu24qPtLkKPNQtjE0v Q0Bs9eLoUl2Hl/EGFxjbB0ZW7nGJBas= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 82B235C5C1C; Wed, 26 Feb 2025 06:36:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 167AAC4CEEF; Wed, 26 Feb 2025 06:36:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551817; bh=9LkGnu4V55DcG0gnLZ1nxdIsaaPuWfP3P63Al4SXqQY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QEaBgAC47cbxN/RRjljj/8roAg+KCPL71T4UAk25EG2gYQZU01C8ZZm/pZhxdCMTr dnWU8VqhwLdVhdEQEP3yxWTYhNkXhzjyJrljzSasWAWf6ljh/fl564jMepEjub7hpL 9dYuHOFrQOSMxGUm+FtWJy3FnzLHIwNMdfxmGgOEK/XsK/+SK7KRL/17jiWAhJBafP iiGwutL6uv8Vd8FM+8kaYmFpuDyGAtDtHm3UOwJe98w6gR71px8mwiTAJmsbDEOsgl ntMIFzIJsMEROJQvm0jvpJ0s8G/jqL4Tesq5PXZL6jGcgAvAzr0YpCry7BWySPVx9P bNZaVK+RBMpCw== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 02/13] mm/damon/core: invoke kdamond_call() after merging is done if possible Date: Tue, 25 Feb 2025 22:36:40 -0800 Message-Id: <20250226063651.513178-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 221B5C000A X-Stat-Signature: dxo9buswx4b7kqx6kfmaoyypfd7f7ktq X-Rspam-User: X-HE-Tag: 1740551817-906559 X-HE-Meta: U2FsdGVkX18s4gIkuU6jT/KuFIYs/rxiW8OniARVcSoFYEW4lgn7Rcy7aiaWfqaOwLCNnA2S6JDRgPwyQj1QCe/tONN8MMGrcZFi0KkN+LM2OcYneIBs1johWA13ebOvh/fB73qxBk9gVAIvPY/4YdEx3mq+ukM6Kfh7dxBhr5hdlc1f/3mfsKJOww7HRgOnvX1NtSjzxxYYG6FUDICzpLyLpJ3IYEA+n7ef9hvkTsWPvJhX4Gz8xrV7m5z78ayjQ6wkx+QBYHuZsC18QiovtKtcsR/6aIyUYidMajPDksHw1iKRZ2m2i5VjdXvibtE4WYw63UFWmIcd5CmBNd1JTbHXh29mN266aALISBECdwI/9C548WBtr07GXBdvtpxho87S9Yqr42a6ZJzPBImG37TtIHRJI0L26sLJUj/IaHs258XMmIB6W/ERKG+lvl1UfKO7SQ8TORLGPrHqTEJCcZbtH18oQI4XG1qWm1Na9299xo3DWJ9W6QeR5zuh1ZMWk0dJgE+GUE4+QmfA2GkN6VEXgUMr7ZPsq8ykZtdarBeac+WUNAlwcecQRna8sDQZcutNQdIXFL+TZkNKHUj0IehPjx47bqhju8btG5cVg+bnK8VBdIqVvKZYt1Mhb+WXf6cTbzzY2UPH/tyt1DzU13yy+dKIoVQDjuZXQKFQcUaIv2LLW02VSb6NrXavfRjADg8A4uF37rFPoqeg1ktgJUip5F2Q4byXcNnpHs04Ir+avkrTqlkoWeFR+wNxtrBuZ/dBaznH4LFidlVt9L16PVKmiATM2VeQ89FC8qCMojq3nrVHO+iDR32D3HxSmXQ2VkzxDc37XSCrC5GJSFwxO1uMqkqPwcXT8V94/mJC7E2+yTvoW3cEUsz24J8znqxiTTWuUzA1dcgbnbVUfS+EiqPGYEN39B0VICpGlZQTHAuajZdUZluhsrGhkgbIUbFcXWQonx9hR2cuUKsMkqo /JtJIjVl UGOzgg3z5sfZI27dTYqxM33KB1lsd7LQTCVo/Hf6AnADNagvv34e4w6xN8b6u6kFh6hFyivI+DCJktkyLzQ1J/wIRuHXM9YdPmcTP1vYcD6AizGtXjFhZ3MLiwccAu8IMd52a3QXtYxh2KwaDDd8T+zHFIAKAYYvmbBcM/jQ4RRUhR9Z3N2q9aycvzEOseqxSaYgrJjzpUE83foU/TiEp3SmF2PbjqMXA8SWqyHph2EWMITt+YuFn35F8npDKALbxTlRYjyPuH6z5o6AjFJBBputlDA== 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 for making future change for carrying online parameters commit with damon_call() easier. The commit work 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 310cdc87d5f4..0578e89dff13 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2412,7 +2412,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++; @@ -2430,9 +2429,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 Wed Feb 26 06:36:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991592 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 E697CC021BC for ; Wed, 26 Feb 2025 06:37:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC8E428000B; Wed, 26 Feb 2025 01:37:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A2734280007; Wed, 26 Feb 2025 01:37:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87C3228000B; Wed, 26 Feb 2025 01:37:01 -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 64E1F280007 for ; Wed, 26 Feb 2025 01:37:01 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 16492C0C8B for ; Wed, 26 Feb 2025 06:37:01 +0000 (UTC) X-FDA: 83161138242.12.C08D431 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 6A259140005 for ; Wed, 26 Feb 2025 06:36:59 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=c4OrK71w; spf=pass (imf26.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=1740551819; 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=B7aBgOL4eIwD0I00Rj2bBgoF2ZdNknG/Et03R5aS6jc=; b=XiPsUtUp/Zifj02x2fEepuNUgTg2mHTLmHvvH7VKnT8WKs87tefdCXMR2x9hIcn2xtyzTX pBjekiOSRSIkzKUlMpKXdkG3umXZIRG5ITKslA7oYcrwUe2ZGytGBMgIORAycNCaae2jbg e1ucgK3nKC5D5LBNUGsZzYxrDuelQtE= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=c4OrK71w; spf=pass (imf26.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=1740551819; a=rsa-sha256; cv=none; b=cZoUZdWKbPtTE0FUuF7V8Yv5RBzR8fQs272863eioQpM50VrJ+GSr/l97DNBUKEpzwBG85 wlh6uF5CmMfOyRnGnHy7ZN0Bzz+hcP5nRNji46yzapdziGBX15jZ8UdWfYHnRvMRNjmteg wA3yvUvRrvejOXV0aS2HxOwDDitgL+U= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BF2D15C5A46; Wed, 26 Feb 2025 06:36:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23684C4CEEA; Wed, 26 Feb 2025 06:36:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551818; bh=43qAgqvlrGuT5QCdJ6rPL+omeoO3HK7C7mVfbHXX3rQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c4OrK71wA49aXqNHD0dgxHKUbfmC0RMtGyCLCaB6W3Eyv4rKbWxPGCoR1QCw0SNg9 hjHvjPnTQAqPS3kKuYHaXiKVTPYlH1ij1VFFgXXiSPsfrzOJ2suCfPduH0d6nzK20g hBBC+6wchQZVwWHdiszEe/DQwIcEXs/YKGslXcd0k2jL3BXRBtBC8LPDS778Vr6lvY kazGYDDVN7rsJKJ6BEtfvgINPlqmFKOoMkaq3G+lbsyOlwAlRx1jE4kS66PMnFypWU Xm9TfZgjYCUQ4B+nYySeAzTOQb3myWea8idoUNYg+f77E66mcHOWHMf7O+H2UXCwO+ EVNsmFbEdpE4A== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 03/13] mm/damon/core: make damon_set_attrs() be safe to be called from damon_call() Date: Tue, 25 Feb 2025 22:36:41 -0800 Message-Id: <20250226063651.513178-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 6A259140005 X-Stat-Signature: 5tufaxaxzpyq61uphnq1og8ge5dkxysm X-HE-Tag: 1740551819-328936 X-HE-Meta: U2FsdGVkX19hlbdWOTqLqkNKDRNK0PnGgjwE9mf6wUMABCBTg80rzrN/0U8ABNgb+dRXVh4vpkTV7kwF8YxxnWJzTeoHlya0obvBTd6tMfRvPK0FSJOHKFl3xCp/+Nv/OXLA6y3tTI8Jxl5TRMlouNwcx0/N3/JiGl8YSl3BH8bY2zLUWtn4MYmdfEhiQPYmf0f9uC5x+Aiw6QLotL1yMQmHAb63ChO8IL0zMSlxvekl+ffbNdN8C5jsABMfqUPR1FTQuQiLmlNyEHeJgZt91uaTAXBeX9WruLqVtRa8JFjmYZAbVHgJtZ9B8qI1Lx0e5smW3FtqXQbrAychRNBmAbGY/F48O5th0Bx/HXyLvSKkUPFfbq8xamKkOlXvaTYgGY+g/AYH4QWxixlllSAWcXRj5kh/NWuAJM9h7ulsbNB2qUrE7Gda4A7NClokDx7s4jEHM4DzCmqToeo3hsQNeeSpdhnmtTKuJuyt0pfoH4trOOdC9Tjgjbagy7k5+887HXCfbKrpHk6cDwaqJO6bY+2G1qoNn8LhLutyTJ7NmNHBX3Bk/NnpIdpWr94J4aKCi2+O9mQbUtrFi68UKaf3WkdrtqaohrHf//FzI2qC5fgl/FAYXvzco1gk0uiQyG4Ndw+3RHRZC9yREgKlQoLOI96JwXZoLqLSWIa/QbxvP+TUcRMffo/JPK7ktH1chyW7XXyLnMWYiMeF0qaauf3bC/FdAumYUidbT3buxYzMU/vygXuI2RPJu5RU1u3jfAi6vRJ9PncUN/7jm+N0f5ZCaCxt0s0NnK6oTNxA8Kz7btk5mBx+dSEWJlVGBK3+pM/nZpai89TGI8TeJQF6qkfq6oSa872rYi2iDfYpqFoSyLvMTZQbXrWOqh7+QIMsh/ub1rCQ2LUj9NtqkMDeYKJt5vVvM3kk0+UC5WzOXc8HjjL9/JTMC1VY2lBfWq9EqPzerYFc3fTYCyq/WfkEo1O LGWzC4PP Z1oMccFKbi4lcjJfNFjPyA+TtvBpt+F8UZIFqcHSZtS4Z4e9I2dpeO2V6Cq9xKo9AVjllR1S+CgzmgyN1BwdFiWcoe4i7C2Zj8tOJdemkZbvdF3GQix43r0DUwTobDWsvlRU6n+R6WwMamPae3EeLUzTqlAWU5a9seV7cVUjv7wvlksDZ93tgDrozDrfXejI2Mz29Bm3OHNxteu+1BhnYNCuHqys0UbPSn3Vxvm10KaUuM4JBtHkyZqZZjjXLknTUnhrOpPOvutyxnddSAP6DhGfMgQ== 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: 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 provides no synchronization, the callers works 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. Make it safe as follows. Catch the middle-of-the-aggregation case from damon_set_attrs() and pass the information to nr_accesses conversion logic. The logic works as before if this is not the case (called after the current aggregation is completed). If not, 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 ran with the updated sampling/aggregation intervals. Signed-off-by: SeongJae Park --- mm/damon/core.c | 38 ++++++++++++++++++++++++++----------- mm/damon/tests/core-kunit.h | 6 +++--- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 0578e89dff13..5b807caaec95 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -602,11 +602,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); } @@ -619,7 +633,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; @@ -634,7 +648,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); } /* @@ -661,10 +675,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. * @@ -675,6 +689,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; @@ -695,7 +711,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) 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 Wed Feb 26 06:36:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991593 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 5E46AC021B8 for ; Wed, 26 Feb 2025 06:37:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9194328000C; Wed, 26 Feb 2025 01:37:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A268280007; Wed, 26 Feb 2025 01:37:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67E0C28000C; Wed, 26 Feb 2025 01:37:02 -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 45072280007 for ; Wed, 26 Feb 2025 01:37:02 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EF7D7120ABA for ; Wed, 26 Feb 2025 06:37:01 +0000 (UTC) X-FDA: 83161138242.07.9648052 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 60E97180009 for ; Wed, 26 Feb 2025 06:37:00 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u1VUa9Tl; 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=1740551820; 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=y6pTGc3hHOvYGU2VpQ9/38MIvOLpauz36Q1otDmBvYY=; b=J3okBSEZBxUJFUF35O2EKLet9S6CZ5R56RRgwSM15X+fujrE32hNTgZBF7hLyOI/yj4iF1 0ZsX3QQCRhn5RVGWEEa0phS/CeBoR/74zO8sL7hBX8m5akbXcvy9pgPpjmsacPPaBXj0+R QlDY6bUn9UupxX7P27285kEGZzOxlNk= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u1VUa9Tl; 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=1740551820; a=rsa-sha256; cv=none; b=INuuIATc42+df2xJMJ8QsUisKoTyI/eU+68LCDiqJNei1iIvNzY8+5UgGas68bwBisN2wG SZ7tLfs3+DMQBDUGlLqDk8GF+8t0F2gk+ORJZFoOdL6JI9IV+7uoOyCFK/6HBEYZypMznL KylLMpmIwa6TfWnmtcowvYeSFOUPGj8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id C0DBB5C5B3F; Wed, 26 Feb 2025 06:36:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4FECBC4CEEA; Wed, 26 Feb 2025 06:36:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551819; bh=A9kUtW/vUg0eJWtZD6pmVLozHOg4c74YXKaYzr3PmRI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u1VUa9TlCpJ6kmtrlPET5GNYjsXSI2WrULZys0ykm4efcjqil6Y+mFt2nGwzo5eLJ ePQC78kT9F7g3yy7DGEm5r21ku2OpNLSV+S2mK1272WKYfBQ1gPZpBScgWneMkbcI+ Owd5vUURIHYkBFHqIdvDRGsIYYzJV1mIl9O18ksRlWIHEqAKwMRVx/KznMkjhNYaLE optqYDTULzCapSsFFGZmxXuzJblRowlcC51/Pgr6KI/ZjyB/y92QCkzcdFm0oSDRLA upDbHHpdf0v+5OHZRPE79eKaxcLeYRV6/xkJyvlpqfJDBECuo3MpOfXBk49BRU0Sy0 w3AwyPHF3QPFw== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 04/13] mm/damon/sysfs: handle commit command using damon_call() Date: Tue, 25 Feb 2025 22:36:42 -0800 Message-Id: <20250226063651.513178-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 60E97180009 X-Stat-Signature: jizr1d5fnb8awegfrnnndk9sin4rck8p X-Rspamd-Server: rspam03 X-HE-Tag: 1740551820-558590 X-HE-Meta: U2FsdGVkX1/duKt0GakpWNhhVHXdkL/NpEwUGi8qDiyJ6zQidObrdqs3SjnsZJTbcECRxTobiCODlN3SpCrWvT/wiCv7aPRguAsKLiLYXO5BaqiugNlL+oiX3aElFgzMwhkJcQQuDZifvFFeSrczvdE3WF/FcgoFmhZdEHndWsM6rOGHUew9+2XSwP+5Mss3UevhrC20eA8kIiCQdSfZEh/Ss7NG1aqapnduRYB8LiXeoRMnNX3OmjYBZZH8X2IhtiKoiksY5ko2kYYb+Wa0GMVGNFLq424xz0W19KriiMySTk9mjVKiPvXC07lYsIGCLy3wslN1iuCeTcR3t4WqP6oby3RqMxFl/8dduBiHm2EwvcCM8+v/coHsDSO8S82tlvJt78ean2YJ1qqaZdPO3fEWIHkihulWkBNm7ISoIoz7LHM7agjWla3E+RIOWEvpdjiPDky228I7eeb5ciG26VYov1dJ84MOIGUhPfhBxdTIf8ez0/fBZxMJzKB9NAofDDJio8MBoi4+oB6j/1vTXDjXTXDzyZmqDoOW9z62j3zeYrWs4Z8SB5J5lVuP2QkQBLVHzJX33azx8Gi36WmevWBSCcqWG3QPYt06qLTE6zHx+GxLJWG/2IAyR7IZCJDRUbf64x8ohkhUKFtUOC0bJX/smF4XkWuYfAiMZObVD1+OlWiNJ8ogSJc7GK9YdMIz009ZtP2JoSxqDQM3shKDjK3ItNFwsEv5fBvfLUGABpjDT0E/mhIUlNxLZFJW0wsMc/Y/g045yZGp9NPkaO+0Y9R+3YjK7bZtCRn5Yb8pd3xap3ubRzGKuVA5RYfvVog78eUM8FQXjUATGfJtIqORvk8FHAk3Q7rsEKtL+zs76D3W3a0IbmZjgUcht70OGI3FPIq3wTExOT9k/tn7L0omzp4nN7PSwfFZTY8L/DN3GiCU79efaCPhOB7fp6DVCHiKezXQhtr6ONoDKdUheZa FEZJs+aP 8pBKuVlVZ5ldcmPNuh0bHDas94H1xIpr1dC36UIU8powzKavHYgOwcjctcWLvbfMIgZEhwXBbYuJlvvBr+vANWss8ZF7CPj0WFqzrYf/JEf31r9/QPg8a1x/Uf99X+bGyfJ2CQSYDwtyVItYCEQBEzsf3qlSCWX5cSeD3J1YpRFpztOTuE817jcrkKimLzsuAkTn5i2DjpiodywoWSmIFyHJNyqgk+aIdKtaw2WL5QfWQ+nzgW9aBpATKcC9qdABoy7oCXnei5ktEu1brv2k3vKaWUg== 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. Instead use damon_call(). 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 makes it easier to be maintained. 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 Wed Feb 26 06:36:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991594 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 1E543C021B8 for ; Wed, 26 Feb 2025 06:37:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7438528000D; Wed, 26 Feb 2025 01:37:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A5EC280007; Wed, 26 Feb 2025 01:37:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51DF428000D; Wed, 26 Feb 2025 01:37:03 -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 3429A280007 for ; Wed, 26 Feb 2025 01:37:03 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E28F2C0C8D for ; Wed, 26 Feb 2025 06:37:02 +0000 (UTC) X-FDA: 83161138284.15.D262F70 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 3FD38140004 for ; Wed, 26 Feb 2025 06:37:01 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=P+NvSuYV; spf=pass (imf26.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=1740551821; 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=ux9zlbR9tf1mnCG2BsHn1eoPkABz3PjjjDgQegwW7GI=; b=dVQPi4aZ8Jiw3zpEcy9QWFvPHsqeZsNFv4d73irz99dH1IEE4nvmcldZnMChCq3TQMKzBs 1tWVB6WhW2EicWYUdtGMZ/EBgjrMdhA0BqtSV27Cw4z3XPmgWA/5hXCXEwI7hy75KXgzr4 e/No2Ve6H7/hvFJatwKCFcZ2Wq6/biY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=P+NvSuYV; spf=pass (imf26.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=1740551821; a=rsa-sha256; cv=none; b=Z6vutFWT6Jf0CPb8W/cQOXx2G4tU/V2h2PpTQM7szMODlz8kXzz1wIFkbtubGZW52VrniC F/ypEtuUK0q5KLPMQQmziwQUQOen5aeL0mg+olqib08sP7UFSS7j0w/x8tTOOqOOdiSI01 SsUerPY5Lyh+n6E/UR5m3hipp0D7TN8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id E3A905C5C40; Wed, 26 Feb 2025 06:36:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72AE7C4CEE9; Wed, 26 Feb 2025 06:37:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551820; bh=ZDADvW0oQPUgZeNcgv9P9GJF3heQ3/Xecw6OVh3xMI4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P+NvSuYVCbP0zamxR9Q/T6/f9oqao4fhYmC9FmNd8WnmGQmavl/+yCP8sFp2JJ0x0 wsdh8ZTOVYIAhsfdq8IUCe8m4JKlWrpDNkAawiTNWgTv/DeA3X9QD6QzsQAbZXxNVe VlutXHzq9Cai0AjDj1uiQI0L+7cCB+wBaQLFWxoFlfGHWJlS1nneI197sqWE/pFpUa 1tM/iMs5d5Dc1ose5/SFQDJGVVoyMralJztkIL26RLL48jyNrfZbew7bCdkgHBaqrl OagseUL313dWU+fHsgFcJ5Lztx1xk34sj/HVXOfwOWcZcbUGzvAv+qz+3NB+F5wnmV i827EwrB5itOA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 05/13] mm/damon/sysfs: remove damon_sysfs_cmd_request code from damon_sysfs_handle_cmd() Date: Tue, 25 Feb 2025 22:36:43 -0800 Message-Id: <20250226063651.513178-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 3FD38140004 X-Stat-Signature: 94a6zibwa3g9gzatek4k83jd5hs84awe X-HE-Tag: 1740551821-19288 X-HE-Meta: U2FsdGVkX1+666kbormCZ3H7fe8WYjHDXQqc7d9JyRvfs02WDc1SwgbGjdXkza1sQLrtOBwaLoxruVg54dNDSGXGnamjdUMbmRDxWBgEiRZA7TM5PEOJQkLVMMhp3TOrrm9P48JeMk/sO86bCfH3BHAnd0in4s4HwpuCb37zbgi1Dz7xvECx9iA5lppApH0QLZo1izyMilELAFcVf6hvKmLfcdhTtC+loBAtovJUPQPvNM156WHZIlhuHlCcJZ8HdSTUmAi750zVIxrgpoqbmvrVxzqm3sBidukUUH5F71Ehx9P9X9AhCm+b1oMS5ZGxobC6TsNP4/fuqZpEMfMIlyUAbPrsQlUsHmP/FyZWv5U7APtAi2kvjApdXs3HSEZ7mRW7fEuWM0wWCOSYZBNrhuePEW9RJ2Jw+0R2LuIxJYtV50l7Ivymf/0W779IIeZ0rhXN3oQxDLBXOzFhkddAIHDUg8pM03cKIddiEH4s6qR6RcllFwH6uw0QpoX07agHJx3e4qIonQt8ubjD4Vs+OvVEMLYQuz4+iSt7XrRD9lrb05bGUmDp4izYImTYNnD9juthB1L6rpLCC9dhbSTBwb5r9PwxeqHUGUAE2nYkDfcS7tJ5P5CKY679oNNw68Ng1cosS/fAIQYTSBMUUq2zW4O6vRYOhsVZJ3C9Y8UKwRiM13ib7b2BL4OngqSJJhRt/9s1Nrlgl9ks6Bve4Xyg/eOFj41RYMpVJs5+0mjIHgw12tR17rewfjxCOu+1Dsz+9p968WHFs7IHO/zvlXOZP51OoGVZ35InMRNukuTp+QIT+rXncEigF9GFxqjkxCk9zv35sp5y0/XYzqJ9CVptO2E27t6Roa1nx/ydgmzLUxId+L2Td/My3t4/9KL+oUiBiPt96sYHMt4m9NbGEGhMpjWVeM+al0lb+2SpkiIh+Fx8QOZCkU48zdgLXpFOtz+oDhLeLcGBzH07xxFqHGv ijWNn+f2 QvjPny2OOxwlIfWPZGqsDRLcUs+TbQPLLc2YSy8W0AXdTBko8BieDGMkwBbW9OLb9suPOCdEuEYrEIJ1LZSVVojZiKK4JhERH3esqhObybwHfELNc1cgcBm/GATzIHOq4o5oM1nzodgZMpKpmPDYNtKQcVMhuti1t8Pl/tV4cyA7kcbCGblfb6zy4vgQU0E8GOvXF/H3o5FsTVhO2c4V4NWTH1FvmceFb1pfwd8aB0BCjAQJZ5H2ZYgHxgxL9u2/8ZuGsIWwwXtB1zHDKWMBxYxKlsg== 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 use 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 Wed Feb 26 06:36:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991595 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 62F15C19776 for ; Wed, 26 Feb 2025 06:37:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6334E28000E; Wed, 26 Feb 2025 01:37:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5947A280007; Wed, 26 Feb 2025 01:37:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BF0828000E; Wed, 26 Feb 2025 01:37:04 -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 1DA18280007 for ; Wed, 26 Feb 2025 01:37:04 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C9706A2B3C for ; Wed, 26 Feb 2025 06:37:03 +0000 (UTC) X-FDA: 83161138326.01.99BDE2B Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 3506F180005 for ; Wed, 26 Feb 2025 06:37:02 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="ou4Jlw/h"; 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=1740551822; 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=1iBVPU8aJ3nsNiIsbp+YWfaVN6dXOzdxFQaQ8iMFuKVeMPKadmTK4+IQw8KHyjjLdlXQGT VVw6fzOkqjnofxm6OMD9sFqnEffmmFk5suAbEs76V/1wTg2Z1y5ew8ofg/M8gSUWerCYQC go7NpXexBA805fkrOJlLs0CuF0BT0GI= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="ou4Jlw/h"; 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=1740551822; a=rsa-sha256; cv=none; b=FYq2RO5x+JOSd4Mj0MZLhUSIig6OS0V7Pa+wpF0jQoEUE2fnVOS1/pLC91AmV3V3gsQ1/Q b5cNAR5U7Jqjd2Bl34RTeSWxcgk3TnF5+vMW0bgROhoILVMgcOZ36x/+uZGpoCqmU+m5Tf hNU3GuOqQx2IyIIcFY4Ze8Vksx6F4YY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 10D6D5C5B3F; Wed, 26 Feb 2025 06:36:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9491DC4CEEC; Wed, 26 Feb 2025 06:37:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551821; bh=T05PHV/b/RY6SE79bGJVruG1lJQyvBwcsDSu/WYUE0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ou4Jlw/h7uxzaJKHZrhqjlV2IAvmkNPu9L3ZopdDLUbEKqsSKUFC4oNZcwIN974nz NOwvefrT1a5l7zV4szTYyn7Zz8Fg9RoYksLLzP+Gjjrf5oCH5MP88bgQhyPyubwqwJ Itxtyz0qHmVmtj5hHo+bcvquT6H0jg1mOO//L6+Qz12uSC5u1ktkLRoENnpxDtLLoq WYAOzzgdsSCZkd3SLqTaNCvfSMQ2RyRWGxD+tqkDFlsFYCZ3LQptMkp34co2a/3q8F FIMek3ClqcJbhIexLUjLeW5TtbhKsNCcZuLbbItCEh6RELG9wYPT2UZ0svKOt5wDYa 2DNmGdrkiut6Q== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 06/13] mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers Date: Tue, 25 Feb 2025 22:36:44 -0800 Message-Id: <20250226063651.513178-7-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 3506F180005 X-Stat-Signature: k18qt3rgnizq7z98b3ahu74engur7cgn X-Rspamd-Server: rspam03 X-HE-Tag: 1740551822-624865 X-HE-Meta: U2FsdGVkX1+nV9mWZbvjuy0RM9ZyNKkuFs76DcGK/5v3746P2fDxfxiIHWtHOAu2Y9EDgFH5YI7sUC5c08FwOrximAdFjap+pxb/0IDoDSk3+PM/Nut7CBkTPgZD4z0B05R/PcN+fu0VShuEk0ABRU9/SOO/7Nlb69NUt5cJF0bWyJRCkJKp7A1D97jRgmPW4g/pa9vpzp6WNmTKeCCMDniQHBI6Rwbrt61871/VNrnwHe2k4yGvyMM1dHbn0iHiB+MtdoMGFpGQZWtNhmvHMcxMnKEoyEn1D7R6//5kCzjjpvIQPAmHKNUs/EAdbRROPDGdwYEB9UlDvbKoUZFzAxRfAuhxN819YdTVuN5zV2q4xPCJXNzc2udOyhPNUTkjnAwYje4FT8/IzygRU2dWOQxnGNBjhwwojiHdZ3twpa8XsONAujFyFWfCacMy2mOmOttMFOh8sfkmJw1ps6/6jvxLgsvFsfTJF1xmuLTy/k3CKnoK81YA/GLEPrWGKPSBUcjdqkMBBj2if2/f3Ill1hmk8BG1OwpAw3okd7hMv6fWy9UU6BePjnzYFBYq930TyRc4D0kZ02xgvyOiiqyC1ahbhbqSHWItI5o2O3u/y5ldU8so8eNcf5z6Gz1YcHunMbrwl63IUMqSoGZX7ZuTkkXhyxHVtvsoG+xFbRfvkQT2uLUV5snoCxH27S2pV94NCNfjortI+h3psNub0ZEPplVPHCKwxcxyzy6lppbdHX77Y3k3vfCjc+eP56iCN37u4SLvbhxR4je218diG0dt9/HqteZKBi9NBfUOVfNKO1PDlsJ51FVf7zCGaDFAlouYqTtmas81fkR+ITmk5Dvl+VrJbhjJ3FFm3ImElRf+LTY4KqnccRa8QDOJYZZhlFc9Dfo1YFy3ifdFKY1pBVAPCkAYvGqIHaApkKlV9Qnie+A8pf3+dMW+psXQxUPGtn9+THlu13uWc/b56JQu3BC IM8JhzXP q2d/KhgAMcVUf/RWXQ9+5LPh9bl+3Lmzz/Z4aV07uD/nUpRBRFtdKC1bFpNMAJ67eI9niiY26z0+wwXs+zD8ONg46frKCDvLVamH7LrOff8lTgameNU0KfhZVkC5fp3U26A0Tl4PSbzpwVyrv7CmDrc+TQt1Ql9u4NeQu+84YyW+WWFCHCxnStgfnXKNOxZ/undFdXo7Lug1AGPsjP6MAbQk/OYufARu2k6jksgqmqmcDRMKuQbjO9vzPBnTht4F4AwWVR4ozlnI/HgJbTQly7G+Mmw== 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 Wed Feb 26 06:36:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991596 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 C1B40C021B8 for ; Wed, 26 Feb 2025 06:37:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F13228000F; Wed, 26 Feb 2025 01:37:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A21F280007; Wed, 26 Feb 2025 01:37:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71BCB28000F; Wed, 26 Feb 2025 01:37:05 -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 549C7280007 for ; Wed, 26 Feb 2025 01:37:05 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D4B83140CAA for ; Wed, 26 Feb 2025 06:37:04 +0000 (UTC) X-FDA: 83161138368.19.55BCB4E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 4362D140004 for ; Wed, 26 Feb 2025 06:37:03 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IY35+2jS; spf=pass (imf26.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=1740551823; 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=A2gyByZa1MK9nzQQN5kuYw7RObahIZPJ2xXKc0/b6MI=; b=FYVNbYeeJpuS59rkzy51zQjkERHLvz6nO+rp9fFEE7vmQ0Xo02zTXv9jOsf+6zTuKU7yU+ dR7iSSdl48QrSk7VvSgF52W7jFci42XtE9pIJrEpxDcl/WdmfdaDQSmfZlDS8f9PPwqMGQ ENeApWHEvuNCcCEEVxZYifieJ04ezbY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IY35+2jS; spf=pass (imf26.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=1740551823; a=rsa-sha256; cv=none; b=0G1UeqUQpNIQvRInKGHUHkMPPCnYI2vet9xK4BCYkuoB32oe//qqIX7+dBdrQuJYWJ4uZ8 qTxiIyvyi/Oa92aq8bxoWWFCvroGu9YvS/DLcoH5UOMWw0zJFLMuE6U0JHJ2hxKEI2JdgS iGkAfDkHIsEFW7QiXsQAYTq9TFD02ZU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 248965C5E2E; Wed, 26 Feb 2025 06:36:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A40BBC4CEEA; Wed, 26 Feb 2025 06:37:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551822; bh=4J5vWHiHbtHqjwMC+hRbiipl4h9liEs0+TfNTGi8OuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IY35+2jSTR0fwPWqE0pDaF10P37LWFVbjA8i0aglA/xKkrkdRBuW0AFLyuSa9KeHM pL7QeBCioMTspDME/Oi5tgLtMj3Ww5A1LPrqqmL+8dn/I3P/H+2ATvr7HkujdVpKi+ kHsu0DgCV4rIYvS/nH7GWwA5/FyIk/sNfWnIPacPHqL0MUoFtHZ4yCGO0syynawauK o6NDT1eHtNQSJhVYcRQ8EP8uA+lKkSVaQWO6RUtD4CnGHJnBTN6fPLTNtOzqrfcU3k V9DFeIAiANVX3zwg0kvelgpgrf764O4s+SgKVbqY4L3lCILw+abR5640X7UDPvdUnp MicgMxBby5e1g== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 07/13] mm/damon/sysfs: remove damon_sysfs_cmd_request and its readers Date: Tue, 25 Feb 2025 22:36:45 -0800 Message-Id: <20250226063651.513178-8-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 4362D140004 X-Stat-Signature: 6zyxhoyk43ry9xejwe35a3y9wi7gye4m X-HE-Tag: 1740551823-815661 X-HE-Meta: U2FsdGVkX1/IsasXUO1ggisUH6Bpy9R2W+G4SlQ6kxOO6BLCI0NSz3hnZvsRemmmJIHHIlD9Nqvwt9bvjOTBgAyoo5NjUuM0fP42p/ZzEOc/die1WmHQkmV+5pBCgE8VSGqbO9eZSJSmYuewd/+tnJZrmefvXCdcmIzC61b16JYupe9RGFXXU+0uRxjLzHHy5D2Nz0MKHJ8TYk/p087sL7rNK1B452irxWmM2HGUTMO8DDYYJorVCV9AVmP6KxkrJw2vVdM2SaN5LxKYQOtCNbuxyQxirc3ZNlsiiDM57/mCGk8mgRDt0uUx1A/JKntg+HPvFtOzifHAgpv+sVx7g1vHC+6grYY7DnL6S1aVav6qDLoEVeUdouIgz2KdNZUNdMhf7cp+75z93o9TcBxciHRMnXkxlD2G5LdYT8c05qCYlxOXPllHjvdBkbWseqGJ+MXWSintKE+2On2VbABbxHmfMBi7wylIhRBXIcmPN5vhfqKHosWXbjVIDT2pHk2CWM1pZFqfjkN0fKyxvb2BGb9zzLwss06294RxYVnzCLzNREFoq0rFSaX5EovSsImw7cjXXCzIcBaTNt9nnATjTXYXRrfaSpSy/fZ6bh95UbMjqVFdF2i9oTgP8rylcwsIxNtrqEb9w7vFtYo/eflppuDUpdkQH/SKWDpKDGJi/v7QSD0pfIMU2AAlldXRXbkYaSw0RFpdgcFqzj9MXTA9nYExw/Hx9qHj5QLGoG1mOy1sF4QJAHmR3QT5LcFf9Xc3lse6sNtgCtfz28uQAWnMijkirmBLViSQrsor4EumD6D256Bh45PHvMAobtO4wjd3hQX+iabI/u0wUnLX55j18hI9b/vkRlqCTpnbhPdLKB/mbmdQELGpEmo1Nh1VQKjhKkyqO2SHm+wWRpXjCiN/O0iF/e8X+sa6fopJpB6MEgHBWpRIXjt8MnvikIs8Hl9VrMaKqJLp5F5ZefPpcBr l2o7xZdd d+VWMxYWH032+MeVeVTNJf26U60IoOPh1+CFbGuURWAoXri56pX5XveJDzH/9Y83aDqurY9tXq/UbDeTpd/ADuW+okrLobGFMrXBuIeiNFMUeosZ9kwpqYE8Kz9BbQdF30Oa5BUre25M02udyvEvbfhAAgXFj/Eyh13U7CHk7+N6BrlOgHaRj8ypDDyl/uv8ecBTSrdjvmCXCA7suKPSYlt/haqB7rR8tHH56MdgEMMuA7y4s3aztFmyxE72cF3asVO49BKfrQAvtstb2/nukUzZwzg== 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 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 Wed Feb 26 06:36:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991597 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 1CD82C19776 for ; Wed, 26 Feb 2025 06:37:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F63E280010; Wed, 26 Feb 2025 01:37:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A694280007; Wed, 26 Feb 2025 01:37:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4FEE6280010; Wed, 26 Feb 2025 01:37:06 -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 2FAFA280007 for ; Wed, 26 Feb 2025 01:37:06 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DA7D8160C2F for ; Wed, 26 Feb 2025 06:37:05 +0000 (UTC) X-FDA: 83161138410.29.E1A3E90 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 4F1D9180008 for ; Wed, 26 Feb 2025 06:37:04 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Rgk7xIYf; 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=1740551824; 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=OEdv2M5/SL2FGhFLk4gXVoXNzkgcrT/2AMcaqErPWjDcoKFEO7kABSyPsimo6ZQFmQL8tF 4aUzXFDx3MXwO28UXavMI5AlRg43zFtjmy7NykGQ8bE8H5VN37JJDLUfJSFV5vk5U++SR3 0Xz0/zlkbsx+wAl7BNhAe9oZFfpZe24= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Rgk7xIYf; 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=1740551824; a=rsa-sha256; cv=none; b=p96zhvfBHQp0nb/zs7HXLhPsH5a5IGGpZvqBPuCcHlbijgTuPunk+5yi2dfBqjAmlNCEbD Mz6r6YnKaeU5CsFa3yuD1eubIVQJEb1r7q4HKzRPBY0GhBt++c8XTbBk3NSsxHn6O6dwDF Kbj6GwT7szR7N6fr10weyn4mKuaZvcs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 311B35C5C38; Wed, 26 Feb 2025 06:36:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6576C4CEEC; Wed, 26 Feb 2025 06:37:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551823; bh=CtrMG3b7XVPdT3oTv/pTE3ihT4fR44kaP9KWdR8X7yY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rgk7xIYf3uct/Bru8Ihtd41lN4L529TO1m3KX1Dc8PXuXuthMn4rHZrRsk/mmkrnK Apxx/MqDzsD8GMC1087yex2BQnHxNoWJ+CyVuVR24lv2CO89Xusu2gCF3x+XsQdBRt 5XRq7mSJ3gZHpjRAJDgs71Frh6f0C4UH+rEgIebK4gEzfYdsiujh8LgrbGSayJm14v 8XKrOppXa45/2KvwpVC3rjn6marRIl5Di23tF9Kcp3hEZaeMP+Q+AH9YHZCJxgF9uR SHm6TU42cy3/Do4NvwpVF3b4YZF2Ugvsty/3yxwagOLGXHKQBPOQByXTGSyx4RN8Js wH2Vb89PCJhwQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 08/13] mm/damon/sysfs-schemes: remove obsolete comment for damon_sysfs_schemes_clear_regions() Date: Tue, 25 Feb 2025 22:36:46 -0800 Message-Id: <20250226063651.513178-9-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 4F1D9180008 X-Stat-Signature: en8me7podyqb1ma8kmx3i7q64hgpxgq3 X-Rspamd-Server: rspam03 X-HE-Tag: 1740551824-494598 X-HE-Meta: U2FsdGVkX1/l78a425t3opNz+o86m6ytohBnKwidF6plHlevkSYuDReC86/54Lx3xn1fxAt92VbiV+Vmovw/yFc91BM6i73+UsfMOqfh0QAegucY+ZS/QsXDWAjjbzjXKf9DMwJAzwo9sZFTh9bLX6GJ8+A/DYdGPtp5wIwdO6rtbztvVsTOfTRp4X2uN4cxnBrWuSpsyOMQGql62x7/qVXeTpZoJNd7mehBXeqX+tQSNVjH+yodjOM72q/yAU37fQwpmn7hgN1f4yGtepSDC2Pfrf6XTD4qODfamU21P1URST+861SKptOKleyLIVl6vHLHA9neUqgrvqwUKIaVsqsudc5egaRLp5kGzBrvH6n5MX1nSLnuDO6GN3ZJ0CG3LVLvn6sUCBgNN0HrgQyu4GFRY0I9blvHUN6Z9QALkS40jL4OHCNg6tsFcZaZkywETCWzVLAhNU4daFgF5MLftCfk6ldAPAgJ87fHRJrg80gGL5EGfT7dfe2eLfgtRsr8aNjkZjicO2gtiV81SN9aeQgWiRF/DHJeaHSjpfnzuvgAdDUdeGhL3f4PhmvHnxN+NIl1nL6Axz7KXMAAmcqBreqBAzpCFzr/ItW1LZLIRwI6Y7sXdwuuaM0yNt4/T04UEDvPPqI8+x3Lp2c8UieM6HqFMgpNVysGgXX11hIVrlXWu9ItUwCNzrW9QQyJMkTMY6xkgAU8fWAj3qhdUtyVP+eg23txYYi3jojFnl2Yx+DGwH2ysqqW6uPiBB/0E4N6aHVHv/NlaH/pYsFJeUClXxaQ3iQJyz3syTv3Q4Q7PcWvOskPnhpGP/PgGFo1UPeA9WW5FRoWQyVGkMNEnRuopnkVGJP6fuLTZ3UH3x8ih0i309y4N31dkEVna2EJ+FbudWBPIEeFmsHB+Mt1EVadm4lX+K4V5KR8mhXoRdGPNjwx0p2jQMMXZl2s3ifiUkYSgYFQ5JtiT7lqS9nDE07 5RZXK9+q wp0kiOQySdlTM7zajP92Lrcwrn4Q6a/5CC0A8KiTkhZA1ss2HH4XCyxRqMnmqNJ8e/ckFGV6KzBf+suuv+1XqT3kGAhESA7sGl/w9sgyeknzMssQn++sLWvH6IOEU0vI/crNCeFq9cSkrtfOccCKISpYVnx5N2T9PCBS5z7H8xj1nwIOx5sACqgNXTizb/OGTxHNHgQp9RRXGBZx1GveJhMCO7nbKWm7EooVTd9NrEkZo8Y15xF1d7jPx05ZLwHcwP2+QisuSXZ1Od7ZNMkKDZX6sT/kicmaV9x8zJWd7+dJoMdmJXh1zCGmWrBQbogAY5DsGa1YP5c4lYjA= 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 Wed Feb 26 06:36:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991598 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 9EF3FC021BC for ; Wed, 26 Feb 2025 06:37:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC6B2280011; Wed, 26 Feb 2025 01:37:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A7635280007; Wed, 26 Feb 2025 01:37:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F058280011; Wed, 26 Feb 2025 01:37:07 -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 6F878280007 for ; Wed, 26 Feb 2025 01:37:07 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 2085D80C6D for ; Wed, 26 Feb 2025 06:37:07 +0000 (UTC) X-FDA: 83161138494.06.B904306 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 818E5140003 for ; Wed, 26 Feb 2025 06:37:05 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MK4TDoVk; spf=pass (imf26.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=1740551825; 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=3MYYDuM8DCriaMbr/dnBYT1lKgXzNSRV7iUhv0lX8Nk=; b=GxokRChkpE3YQbnp7/n26bK2n3PxJsfdstpfl4hc0Na/4TZHZCS3bEkgPU5XlWjXMqQ7RF eex51S8+p6CCpSuhO0hEGxv9TedMhH/GGfuk56++9axx0nf54CLjQpIKZxG4ihDl1GFlGe Q5krN4qFT/HkEEpceqrsKTsh0VYsZvA= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MK4TDoVk; spf=pass (imf26.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=1740551825; a=rsa-sha256; cv=none; b=JQMC610LUAx4vP1zOmaZEOawWqlvIlDNk7Y5C6DrOrnUWC5pcgceb9qFaSp9hTyGX3aCnk VKoxedaGhDu3JL4T1nYCXbctk1O0qOysc/xgB8DdUOrwes0jecsRhEiA/sN0fz9azi+tyh VYV6amEhLeSxmHvQN1zxR4qS8NTBAsQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 58CF15C5E92; Wed, 26 Feb 2025 06:36:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD050C4CEEF; Wed, 26 Feb 2025 06:37:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551825; bh=7J5ghi8H2WMjQQb1EvkfdSEY5M+51vnK26msM4ePujs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MK4TDoVkFXgj08qkJ+EcQXH+mw3NjLfnViyo0n3e55anSepeTY5jXsyN7Yt5mkqxV Lulnr/k/dX1l+iDioETho9Vd/iKLfxVPHn2tQEzbbbwJrdKMR6gNJs8nBLXVw8xSUz YPbvl7K0LN+3bPsbgZjXPdB5R0g+QcqPj5cxEPJteD/+HCZDOha6Wm+W5Ob7gXHQvZ LoZbADvdbvVZ0Rx1FwPCGaQsb0JC3ykTliyJA3LCvbxDHkF6R3/ctpcvkmzPLTQ/tK WHARxzqIRfK2FN06WamKGPZYWdgzffwMQ0MFOfdZDm6KjryghaYUT4LtsfGA1Y2aGO OI7eQC+5MP2rw== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 09/13] mm/damon: remove damon_callback->private Date: Tue, 25 Feb 2025 22:36:47 -0800 Message-Id: <20250226063651.513178-10-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 818E5140003 X-Stat-Signature: mabb9jmmr6pttpg6wph57t5bqfbakfhb X-HE-Tag: 1740551825-423787 X-HE-Meta: U2FsdGVkX18uGyDj0ZpdL4iZ7M//1CzQtExzYvG6KSK4Lf4wJOO+Yja9Gq7R3mpGBglCxzM6n0VUR6VhsepY3N+L4TMcoQTHHbfq2+5snz+ZOW+DtDBlbhgzIyB+Ei5hIuwIkp97lJHEUD5lMu4DgfT7wmXllknSqqbFrP1H4IjOQKHuM01iV08CS7qgwvmiXTYGEEqmmheS2NASB/getZs91ojBUUaqtMKsSvuf2R2U/eZuja2qQuPwOBDZhAGa1VweaTIZ1VLWnfO7ANJ941tsgmiifkJvfvqCijvEpaMf9rsxQrsQIecxiOsl+oW/4JiH1Orf1n73i2EzKdzYCgmO+o4ofwtyZ+Zl3XEOWubxjJIOknNw+zob9s8cJUMqR8dS44G4Z/9Z7ZpJqrhqXJNV5E8qZ8s/cWbFIvWx58MkmKBVC8rozfmtRNo14Q4hLv4SZxMeX8GFQgtcykjhLte8eIHNkr5AWALnaYlCXSTU1XrATt5S1GgCsWHeTLTC0gOKb0ELR7MaYdcEGBlNR3xVCiDZmH7Fh9YprOAyxgexGcAYE4dPXfxHTnVSOjG4HPQXMXO55qPAq8bAJAh7eEh0MuDMteqHdeujdV/PVJeBDZTe8t1kw2r6xs36XLMPJEa9B2w5Xu+GeWe2gUjVPUx+8QdPhQ6mPMm6Uf0u/z5wJ0J3rKKqwxVZkeAebgWxV+3xs1kFFmjKdOkhdfL1wuZI5yW+gHct314DBkJsT0dbTEB1PiMv2Xtdwa9bbMk6RtDsTDQmP5JjeJTXYf6HWMKJXmbcFdNI1mu21gowIsDc9uk94ITLnOD+orifmxWqcBkxSghfL+A0GfGImjp7RkyJggu5SyMuZlUMpxvtMFS5vQiFgY9oXvR/U6Bl2RdD9dl17RvPPLU9vR75QhJXTRbPaiO+5Bl+/U+h2NbLHu/6TYVTJ7sdgg+M2LC2dVNd1JAGwt+BhewLfmlPLI/ /dOJShlk Cv2GpjTypFJyK6bBFIrwn4JRMZ/xWXBMYCukIDpsFOUZ4/XtcpZwWvznUj2Pu3AxnujgbcuA79TtAh0sKAHIlswZfiaPtGCf0MQwKNVMpgIcu5l8qamcBPmRKludiz4xeUwVjrFKhLHrHht8h776vyLyfN5tcFIaEHD2azVNWUgREX/u17Q08UMq9gMn7Sf2SwBasaQhpUaVwCZ4f30Dv/ZKxpN6LYqmsR1EbgDPRtygt2pO945HZFCYt6ycbePHuGzhWYgVeZ/eIr8KwXCxqOqZz/g== 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 636dcdc49b22..2b783c91cbb5 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -604,12 +604,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 @@ -625,8 +623,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 Wed Feb 26 06:36:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991600 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 A822BC021B8 for ; Wed, 26 Feb 2025 06:37:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C5050280013; Wed, 26 Feb 2025 01:37:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BFE0E280007; Wed, 26 Feb 2025 01:37:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9B218280013; Wed, 26 Feb 2025 01:37:08 -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 74454280007 for ; Wed, 26 Feb 2025 01:37:08 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1D23C80C6A for ; Wed, 26 Feb 2025 06:37:08 +0000 (UTC) X-FDA: 83161138536.23.ECF0242 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 85290180008 for ; Wed, 26 Feb 2025 06:37:06 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="Qo/zDMIb"; 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=1740551826; 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=xdfcRqARcPGc084FmgCeuP1wshoSWNriGQ9mP2YertE=; b=a7P3ERggfcbOB29YQjuYiy/yXr4MIwsHl5FrV/aXOXhVawePn6UIzarbmbPYGr7MTmI08e GL5Ugtm8cs24aQG2b3wtVdl8wOMMhyMFsBQRtIiCejY1dzWU1NwiNPpOjTayiB2BcfJrpM OgU8z0O/vUM7Tj9UDrbUYZSb1M57KTY= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="Qo/zDMIb"; 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=1740551826; a=rsa-sha256; cv=none; b=YZSsEFua716WH/0H3XhBRTpj0ahJl+axCpMqwKvmVXxME8559iI/+bWh3nsomba4nqwFeH bu5HA4cIjGTjQR0tib2SaD1gDLSCvVAt79L3m2qsIgSFpAgQpsYu0ojzFkAZ3OCLCuO3zQ 7ArhGQpILF8ca6tz+FhGJuNrg3nY0sU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 6BBC75C5C1C; Wed, 26 Feb 2025 06:36:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F3D24C4AF0D; Wed, 26 Feb 2025 06:37:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551826; bh=e9BbdG+2vB4mTDRNMra/h/Oi4AJ4RbVhMKgF5wEM9pw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qo/zDMIbXIg4iDVJoez5QmSFrcvso/zTS3AF0lBT5xEKV2so/jqAzecIE/MA1ci1d 8bJb/oeaUeW3UiowG/ACpPzXs+xbCwGERjCC8K12Wb5Yjrh6aHbiosCR3ftS36DTGz ylF/G3Mc532XIVh45Jeoc1Pa5aX88EZZGRQi6YELDM+8AzhT38Pu7TOcS0V2yBZtXW MhCiqCSnls5757YCrjBjTAIWH5o944ZHS/9jHu2fPjSQPpYOaAknFb79Blcc2QtASs RE44cR4n5JTU52dRgQbINPnxtCHGXPdV7oqysRLLjtMUTUcnnHsy9DqCzeOko4MaVC npq+r7YNR8bdA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 10/13] mm/damon: remove ->before_start of damon_callback Date: Tue, 25 Feb 2025 22:36:48 -0800 Message-Id: <20250226063651.513178-11-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 85290180008 X-Stat-Signature: ibfaifjz4zycwhnq5qeq89kxpek41ok3 X-Rspamd-Server: rspam03 X-HE-Tag: 1740551826-200413 X-HE-Meta: U2FsdGVkX1+nLAwb64EcB0iXGP8V/iEioT5mLQPx2Ff20T5t6mMivVqIdLSWtdlPXp6DM/M4wzxScjzu7EP/hSfw02WpMwtDH5z1EOpiFDxPrdw5w1GsrBK7Uj8cZ5zAd5hCE+HgQEWQUFUDF5R9GA1xvFrpw/EJS9Nysq5bPKQpzHjPr1sBEiOz/bWCw2Blzz+1CosaeypD/DSBPDNa5WxBOKL3ZSRAj7p1X7Udt+qQ+0xM8Xg7O8Al206dnBXH+mKRlkk9a1hfgVyj7kgBV+56TotrFN3L8M5p7FF9ctMdY6+BuTeo52FXdbLIIHzb4ik+p/eLA7KAyJl+jzpmblKErm3vev6Ut52aRVtoLEYqSV4iq34CBWRdrVA+DVgrce7SAk0xrlunKytfmJM+uCJVxl5fTEPYXCdEQRTJxLMUickhx2Zh65HLdFBY66CGzxKG42zhrg9c4ggG2dDS9ZTZRaJqGmSodjfVg/f7ZdVqgyPSCEGOfIJYfnjeG71WIQpWFaMoYregpF7HXRvsDuRkXCsFyjiGu4PURx4iJNu3+gnI5a19JQszdLiltHJjkadzV2RvDSK0Ijz5mlUf4BXJ7PaT5FK67FU/pJFX8wI40gj25ItFPhk/axz+YS4zghR6npO0tvzool4e1HcJJlMV5i4zejV7KnxiMYudNCYddgn7/3zspT0iIxd/YD7N4wupevgrrajiGOr9uirRlorX2ye4hLkyHOloQPQKtbQJXsNluFBC7lGAobnbu+2VNEQnzqQYYDFSAtkhrmuDxiUfHFfha0Be3ta2OLzdI1YQw8BmU45s7CgfEF3ORFYAWeB++6pKdg77aOKqE2QaQjWZH7+GdwYNS3OaLeVeujL/HOY8GF9o2IppLBzjcAW3o6RUKGJeBuVgr7Bdmgup/hN23tgz3woMeNooJXPYV0k9KMyDFqsMiIyjzpydLISxVRlNgQskmgEMqGdrjb5 il5q2wWn Pzi0L5aehOn29PZlvNdi5dJd8DFaZbzAz8L9tuQFheUfDXHqH61H2EooIA8LU4Rq2tOPBcFeQakcnIa8KeAHFvhJwzDz1sw+4TNTxJf8sdoozubGI7b8I2kl+RUYfbWAk83NKoX0tmdPQZoZ7pGhvNMrITs7GOWk9OyLEnQKftptg3XJdBlVoKE4aUwwX5M0g2VhMiiBVRYLsQ++Kmu3NN86ditmcZfVPQVwYBs280Mtg6oIOhMHMSuVoWBigE/F4QhECB3eGI9++VtSfW31EClA6lQ== 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 2b783c91cbb5..11cd916b41fb 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -598,16 +598,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 @@ -623,7 +621,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 5b807caaec95..8efb249be855 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2399,8 +2399,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 Wed Feb 26 06:36:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991601 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 9B808C021B8 for ; Wed, 26 Feb 2025 06:37:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C9B17280014; Wed, 26 Feb 2025 01:37:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C4A4C280007; Wed, 26 Feb 2025 01:37:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A28B4280014; Wed, 26 Feb 2025 01:37:09 -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 82559280007 for ; Wed, 26 Feb 2025 01:37:09 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 49BDA80B45 for ; Wed, 26 Feb 2025 06:37:09 +0000 (UTC) X-FDA: 83161138578.03.33010B4 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id A8A0D140007 for ; Wed, 26 Feb 2025 06:37:07 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=s+hMAQS9; spf=pass (imf26.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=1740551827; 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=uOReOJc+cft5+DdFrh5vbKC51yWodgGEZM2ZebuVu2k=; b=Pz2Tx7y4Jw19u4KwqhAQKpt7nv1J7ej9ovIa+ygGFFRj8vFI4kUax4AOVEoQsCoJ3/tvLG lWjBqVwwwTpYWk1DcXIyU7KGKv9PUOB7No3LzozBZNYaf8422AGhb3zSG7Rh0fwlu6LsSS b3spPj//PLUdz7Mg2wUg82muHNTQRP0= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=s+hMAQS9; spf=pass (imf26.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=1740551827; a=rsa-sha256; cv=none; b=rzt/ItpHsQ9GUFZhlZlxZlS3FDLmk+TT/c5K90tv4riV816GqmV2fbnF9SkijP0b8ZcYnd pGH1FpTT9HIM5L8hA89SZVHGbk6vKvQh+dAYvr5Ck9qh1Zw5Ca9CwbUSYOGlIfXv0hj4Gn mwt5kX9FuXEfrgz8RgjVlDJCIPr0UYI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 831A35C5AB0; Wed, 26 Feb 2025 06:36:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1517EC4CEE2; Wed, 26 Feb 2025 06:37:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551827; bh=PfFmM0ne7oeiliHHlhMvk+NOJkvWZ9fZ49v2P+Pn3V8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s+hMAQS9IZUUNzjcxBCFzvAu6e86w60J/OsSVl7SoXFMus4d9TQBOdA38tv76FXlk kw4INrISe/ou+9pU8qcv+As2O2REveghPG5mSAeSfhWK/XEBcT0GOfP41fI9bvGI// 0vleAx8Tzorcq/SKPmmTDV73koXV1J64xp9SscUbgZnF3SEeE8DyIPfrbe58dVmfHK tPq7bxuvwuPcFGbCp0Vx7nzHO2i/PLFG3jekRQBzPT/2ZyATYY/uwYiBhO8cULjONS vnM+w+IIDAQADnGOeVdKin+e3vO+nf8/h4sWAsmLsJblwz9RC+x0Gv3wpX8dIGQNaL rMtg4tSW/IJEQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 11/13] mm/damon: remove damon_callback->after_sampling Date: Tue, 25 Feb 2025 22:36:49 -0800 Message-Id: <20250226063651.513178-12-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: A8A0D140007 X-Stat-Signature: cywmhfan7kzzbgxjezgoep8zwqx487ni X-HE-Tag: 1740551827-598726 X-HE-Meta: U2FsdGVkX199lSpS6VjiCK4Qs9q/8yBH99XuK6/930HrAg9P9t63fBNyUzKSyvnlTm5KqpjdsT1jgoELA8BEtGbpDfpcmcPxfYbxxa3EV3PV9X83BuxyZeIgJegNUxVh4N1asaQx2lXU8RmZFZjHMD/HrQjj6UP6FbFsrrSjgiGLfmkvTg27vFH9oPJqxLq7WPAzK8mPM5rBOcaO3XAbJQhOqG1LeWVVirZiI7JesqDC2G9X9YX2Qn7bdbz9l+nDnHtZlS3ngeUpxuCm/eqJkX3vjuy5bPW4byIgUH47pRsV5l3L+oB5xLXor7Vu6z6Of09c4DtbIyBhPEj4a0YGOukA+TvvAxiWYaJ48AmAAL94MAr5oBWLU08N7/rE3Ea3LQBG9XjhsZ5pDYTeHjkQUHpWMnIzizv4nk14XY/moIh69HDZzO61Bnrwe5WX5l8UY0GAeAPUrupqRVhK59rStv7TAAs5wCABauEGxKShvULk0D1qM46nhADrTRrtFRqJpQvadxkCIoA8NXChz6iQojy827oSDWeoq+T7uSzKfIipLgjKM2geR6OTIljQUkglkXzHe9ucEKF2+8MUUMzjrfL8iuylmCy/YOV3j2zThIxMYjLn1yeggiHKy8F5N5ZV/A6Un9bOuJ6JU3eODDV0OpVryaMofJUCtcixZ81LHI54UpOEoHqROdUe/BcDnndqlh439AyobvW7CRRVHs5Oxlu3bdx7HgHPo3gHXFAhjGZVNiEKQaTs7kV3+/xh9kvWj3SbVx2TOlLXBXMN+mSy0biMTL/7+OVb4w4fex2ZCqJvG8ohpg9KXafHwMK6mVRJ7ukvVE4zfmRxIfXwr1yZppOLEBAbQFYB/xomjWalQswuzVir1A8MMHMm22bsrCPS1+tDPMY874qWz6uR+QOWzIIbhJUtYTprk322l78lvzg8rjCkFznBqbvgIYXEOXuZPi6G9RO/7w144/sCRP5 wnEHLUkE Ex4V7ybX5oZ79ymQxMvlLbNCd81YTnp3v7fUUbTCsRVPQEgNMxIbFcavNsIaBnilYmkwqQN0PuWUE2bTWISAWiZc9PbK3EvMtzN9hDWVHP3fzOhf9apuBsBNxYo8YJjehffhcJvXezrOBmQ9lY/FpEGBQ/biVLKtOntaMniQdiCtN94u2d8HnfBtngS0JgjOhVEuDtvsrht3aII/nCQe4dZjvdsIMZC0BjqS8HNDUlZv6uQDRaQ4zdLifwThIRasdsZISdDmGz4dA0RbCF7FylGRHUw== 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 11cd916b41fb..c9abacf16d88 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -599,7 +599,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. @@ -612,17 +611,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 8efb249be855..14e4122464a1 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2423,9 +2423,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 Wed Feb 26 06:36:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991602 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 4414DC021B8 for ; Wed, 26 Feb 2025 06:37:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1057D280015; Wed, 26 Feb 2025 01:37:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F310F280007; Wed, 26 Feb 2025 01:37:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD3C8280015; Wed, 26 Feb 2025 01:37:10 -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 B4825280007 for ; Wed, 26 Feb 2025 01:37:10 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 722231A0C72 for ; Wed, 26 Feb 2025 06:37:10 +0000 (UTC) X-FDA: 83161138620.22.7F92211 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id BA52D18000C for ; Wed, 26 Feb 2025 06:37:08 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pG7uDphF; 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=1740551828; 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=jG/3GmVvHU+rIRhI9NVwZg3TXV+r07MMid5LIJ3YM58=; b=AZjosdo/iCvNPCTdrYupm8zd67D15+DB/ZCmynBWiNL2KusKr8nKu8S0jHD7J3ezC0Z5bL vjhO1MoCt2g0Th5mwz0lbsufawixsfAwrq+uzmGqQOdDfghc48W8fDBOgWlNfgbhOigbcX uUhwIJ1FRT6HLLs65hevFL17uvWlLL8= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=pG7uDphF; 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=1740551828; a=rsa-sha256; cv=none; b=2yCFGYcFETLYDOdCjG8vdMaHU+xbPbJ5saw+qERkz21aDJgGxQOTzu04st0l4KnbXigsV2 8Y8Z9tpQAe0+oEBj3PqeGt5WBOgQfYt/Lm3HNFIfE9hP2z6d7WWCIPMzkA3nVoAtr0rxas Q9X+gmvpfDjmmUfu7ku8AFcVEEkRJ9Q= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 965CB5C5B3F; Wed, 26 Feb 2025 06:36:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29484C4CED6; Wed, 26 Feb 2025 06:37:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551828; bh=0JELExNnHyeZjbeP5ZoxjubmzZrKIkH6IvMexJsNwbs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pG7uDphFQhxUNLwpk3/l2bizP+t02fv/8iSWqdIx3jv5WH+6lNDCOI7SFur64oCT8 J74ndxyjuJMt7aHCM4EyDV3q0OwVWBneiXZQkCfslrPhaqeVCkFu/1WAMRxkMiHOOM SQChpQWk/q96/Fu+jSgqmBINCXbmOKuQYvAUM2fWwirYqQmZY5cJWRpAa7sDK4Ios7 2RIt1aw29LGdueGRMwQRPSuo741vZsF8C1QCw3tJbhzVA7U2n+ACJNOgSTd7V8Ctl+ q9YQpLx8CUfcQ2+O2B4lMv88KXkZkBiXwvFz0OieBicaTO7zO0JYI+vT8MxAMsIi/P nO/Kos09Tn5lQ== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 12/13] mm/damon: remove damon_callback->before_damos_apply Date: Tue, 25 Feb 2025 22:36:50 -0800 Message-Id: <20250226063651.513178-13-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: BA52D18000C X-Stat-Signature: pxeqdctn8euezwhemrwj349pagytx7g1 X-Rspamd-Server: rspam03 X-HE-Tag: 1740551828-391603 X-HE-Meta: U2FsdGVkX1+iIC7tAE/quZESfx2iaUDb+jboxg0cyi3hSuetIf+Y8gHKPIoqDbZPqyIN4pD9XIJksyotb+UTb5dnfm3fBRPLR1t/JQtng7wLSAFhbhocX7La+lXyozhX11qUIxYxA6yUH7HL0WkOb+sqCibzUN6Ez3lkCts7ajnKhEC+3/MoTFpiSF1quZSWkwW0vNYiaU2OHSJ3WXdRczADHpKPNe0mWCxtycoLmJOL6sE8Jhu0qIbvBzw867rqtI5vwdV8MxNIFTVSih+0fA5o69nb/sotqKDMNKkal1WwAayLG+wZqms7l+BR1N4HWpoVESLPP+uaAsqfMuWcXptHAexU1gj2obLE+0s0pdCQgDqLNFCeAt90OQ/SEn3T7CsuAqKknuFMe6cIG0mXiMSPNJyzqGksc/A1pESzyzSMt6EoMDMGmSXglzhhaH8QnDJIGBL9u6A2+RtVsWevzT1djUn3YOiqHnGR2VkM0C9BzfbJhXQZ3xFj88jNrllykMnRqRFilPbXtyKTngcDqBHJlKmpZe2FPMjEuQsRsBkMRi47QJ6uJ7UOyFiV5KbWHBz/mNq7bM+qL1QGn4FqX5izyscjoUSqB4z8fIJTtGay3t+JObrJ6Ugit5Ir6QZt5ovj/NDNL7XswhOqwxfDtH0p1Twh2ZKkzPfBwDwEHN6DEjyy3oIkTpbOcHrqrHPCEXP2hSZeo6+RIcLuSfIlFyiYmFD63cWTEYcYh6fN/9Rk+2dvaRypeIrWIXiD2a1ThbHNsNjsGQ0XljUnY8FrI369TtWM25EQoWBqvnBcNvnXycfZJQTRwRwnugAHizYGJssp3fa2ov5/BX4eA3D5zubWX/VdWuvtz+HBOKPeNHiqcEt8MMMhU1fJWR5sJh62zkgy53ne1uYYTVOls6NiGEuwsnI4PE9dsyRWDczHFtjynHSSmkKjPgvCKISIqpfOEKeU55O8t6wZUPk70+U Pj3Bntq2 9EsMyREgJUXmyuLQwdQPNe3AfM1jHdFupO3JZCSy9gkSyua/zj3Kyeo2vn1XoEdABs6DFs4Zt0CnlnNg5Tf4VUITNSOHhTizKaQDW3DcZnHlSdxWrDx6ehEc7nnZltTQg10BJvno69SkPa9Fi6QfBaaceAef09LixofG3POwPwOtSMDKz41eOYiCLZ1mjWn7GIuJv+X3GhCZxJ49+QDWVyP1huY6QUsqCn1OhLr/JyQRq+HKlgkTBuxzB3nw+sQILpgLijuqg9+v23HkSVU8Tm7QcSg== 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 c9abacf16d88..2808ea07e1cc 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -600,7 +600,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 @@ -621,10 +620,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 14e4122464a1..22f90666fe16 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1723,7 +1723,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 @@ -1763,14 +1762,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 Wed Feb 26 06:36:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13991603 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 D5E7DC19776 for ; Wed, 26 Feb 2025 06:37:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 39C09280016; Wed, 26 Feb 2025 01:37:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 237C0280007; Wed, 26 Feb 2025 01:37:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D973280016; Wed, 26 Feb 2025 01:37:11 -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 D9986280007 for ; Wed, 26 Feb 2025 01:37:11 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 9E4FC160C61 for ; Wed, 26 Feb 2025 06:37:11 +0000 (UTC) X-FDA: 83161138662.22.5361131 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id EBEC2140005 for ; Wed, 26 Feb 2025 06:37:09 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NkC3trE4; spf=pass (imf26.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=1740551830; 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=zi4bLAzmPbKb/rcJNSQQvSUwrVRMYUCwWJWkJW+m6f8=; b=vXIL6RA46OtdKssduxCJDHR1WKYXImA/PDfEF0t/PHh4Qtf0xIMC25JaGfMBWCw18MrI5B jJpjCATJCEWp9h1oFhqxScy0fG0ddJCiNgFm9bSUJu+CVpEkN+5V3oalw4ol3unPve+mFa dEIIuNijKAOZ2pTbOQuGk6qklgf2ZP0= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NkC3trE4; spf=pass (imf26.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=1740551830; a=rsa-sha256; cv=none; b=BUAddM2MRkjNfukuf43Qv/8ZLSDEZSt7Fqyhowcr0b0W3ec2F8pFYXTfga2V/TsYcPYsBS 4RIp5LqGDPMi22IkROca3fdt4XB2I2cGmA2drT1FMlB0/ZJ3qDbN1CeJj1T3bvegbUq4k1 2bzVA7ggmxiErY9uB41VjnwwEjHR7Ww= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id C57E55C5A8D; Wed, 26 Feb 2025 06:36:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C407C4CEE2; Wed, 26 Feb 2025 06:37:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740551829; bh=tR7XrAvAqL9tgp0wezUMza5484QErgFfXZf5Rw+Zt88=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NkC3trE48rYxCFFDy66tykiWPjoMbZBsb/HBH52ZAkninFLJ0O7MByribphGwbMXz KLyVk3wtX2t/4Y0G1+C3lCFJJtVUbu69r17GBdwwItO1VXWf3YcRODWw7dXkn0AuAE phXZP9tRtyKsqQZ0MbG+9Qfyf7IP+CPFby3/BLT18JYgoBHCuZks1Cw+zk79o+PzpW uSl6vMNooIM3pr8B6TzmOWAUwvxvYIavDbJQouMkMxLaR7GHAXpqTFmi/H1u6KuAFm zTkjponpdS4dehkyARKICzrcYji2/gmUJN+SIFQgkB1I12AaeUXdMzH/18G3MFPeHx 9yDRcptpIKLMg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 13/13] mm/damon: remove damon_operations->reset_aggregated Date: Tue, 25 Feb 2025 22:36:51 -0800 Message-Id: <20250226063651.513178-14-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250226063651.513178-1-sj@kernel.org> References: <20250226063651.513178-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: EBEC2140005 X-Stat-Signature: 6wn9bdzasxh9i4upt5kt85igzwas86hi X-HE-Tag: 1740551829-577915 X-HE-Meta: U2FsdGVkX1+eKXdOvi7gBrfXLzxRMXmCrrD6AypCeXjnFOoBQVLYcIJcaszzyAzziSFHgll/MGmNT/fKoyPwZo3JRnc9ks+4wWEDHBDqIazdk6CQe7vGYUJRK5pm6a978bZPaNUnUhnPrirrWLjOdqCVZRi9jmaaQrV+YKM2Ku8cDGr4Tr4J3ReDyhXX5fo/UqgX2Xgu5hV2U0Is6tfYhgvRlieVj6Om7yc66RgPuGSB36PGwYPMXgHiXofgBK/v+k9mtl7cixBLw5lCKfXoYda2w5d5HsesiK76baZ/W1Pr3ksTdF9RcoyIa0md7GGWNZuhmKpG0lNzFHZsAujbN47Skhb012yc2ljjFUV5dAALYLfg80XgN9tulU/F0rGSZw1Pd6vWUX0UPqUmBAqP/2GH75QZPpX5r3Dlwv5/0ZvaoZyR1ITfR1L6gMkCBCUAEbIKNtUjXsmAnshUG6Fe10amqyXeemh5BJUy0LEewvQRBBDa13vwDIvSrm9NzDoUsBydCMyEO8LpoiMT3TbR1gfSXEm+U1tdmM+vocSrQBkSr/D+eu8QvsNVAPHggQd/UNt1J2ro6qb3Sec70R0LNTujwfAvccgRVkEE2pzZiTqay7ImnqHYGW4kJ+XY/CQd1uq2Zj9CWhSmZ+ab45NABr+nKoTom9EQiOgFXiRnglb18WjSKjseXNYRgtXnt8Sfq4cWl1llIfBkQquym6Th7IzUGz/B3h9geRrTm51VhwTDjnx0vyRKNdqEjr2zYIxOt/cZ8IO8LKpRdmfQ6/ySPmabYgsDgIjhNGToEh3BqIijuPSddVJrG+BAK0+GAxkLrRMURXBOmxjbJhu1DS7wZIQzanoy1xw9TQ81nC2F+Khspc76kCbEySVSH5Gdo2SgOQiQNpV+sVOz1GassTRL7oGzD4q+oHPRzK4yhUBn5CoaLjNX2R81qtlRf/P6BEf34Ndlcb8Vkpc+5bC6O3E m4ozx/tk Q6WrRFgNFa5BUB39Nj5qaUgIByMQH4LCjNbgbdsrD1IoMR5VcOl/tmaxs1YGA39j9wiDksgnQbRBTXv06mmc2de/eU1Wo+wEIt0PZVx2omAbJjA9SG7DCq7oYX1c/B+KqqJ7AR3rC68r0XqRG3UGBfvWEUL9DpqY4lbtHsSeO5PejdcfCYnKc8/f9Q5nv0K+D5hf/DVAB8rRIdBtspWj/jmMcV5KUw8+pre/tgaeqoWsyfDuIWe1pOHs56OqpktxbWXrOwtyl/nk5Yhdn989gxdOwuA== 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 2808ea07e1cc..957c7f3af80f 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -537,7 +537,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. @@ -549,8 +548,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. @@ -565,8 +563,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 @@ -584,7 +580,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 22f90666fe16..6f821a579257 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2463,8 +2463,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 fee66a3cc82b..e5b532340102 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -618,7 +618,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,