From: SeongJae Park <sj@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: SeongJae Park <sj@kernel.org>,
damon@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH 02/10] mm/damon/sysfs: handle clear_schemes_tried_regions from DAMON sysfs context
Date: Fri, 3 Jan 2025 09:43:52 -0800 [thread overview]
Message-ID: <20250103174400.54890-3-sj@kernel.org> (raw)
In-Reply-To: <20250103174400.54890-1-sj@kernel.org>
DAMON sysfs interface handles clear_schemes_tried_regions request from
the DAMON callback context (damon_sysfs_cmd_request_callback()), which
is designed to be used for safe access to the related DAMON context
internal data. But no DAMON context internal data is accessed for the
work. Directly handle it from DAMON sysfs interface context, namely
damon_sysfs_handle_cmd().
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/sysfs-schemes.c | 2 +-
mm/damon/sysfs.c | 17 +++--------------
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c
index 2aa34778a472..c57ab47686ff 100644
--- a/mm/damon/sysfs-schemes.c
+++ b/mm/damon/sysfs-schemes.c
@@ -2260,7 +2260,7 @@ static void damos_tried_regions_init_upd_status(
}
}
-/* Called from damon_sysfs_cmd_request_callback under damon_sysfs_lock */
+/* Called while damon_sysfs_lock is hold */
int damon_sysfs_schemes_update_regions_start(
struct damon_sysfs_schemes *sysfs_schemes,
struct damon_ctx *ctx, bool total_bytes_only)
diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index 789804986ab0..4f6e4720b7ce 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -1254,17 +1254,6 @@ static int damon_sysfs_upd_schemes_regions_stop(
return damon_sysfs_schemes_update_regions_stop(ctx);
}
-static int damon_sysfs_clear_schemes_regions(
- struct damon_sysfs_kdamond *kdamond)
-{
- struct damon_ctx *ctx = kdamond->damon_ctx;
-
- if (!ctx)
- return -EINVAL;
- return damon_sysfs_schemes_clear_regions(
- kdamond->contexts->contexts_arr[0]->schemes);
-}
-
static inline bool damon_sysfs_kdamond_running(
struct damon_sysfs_kdamond *kdamond)
{
@@ -1417,9 +1406,6 @@ static int damon_sysfs_cmd_request_callback(struct damon_ctx *c, bool active,
damon_sysfs_schemes_regions_updating = false;
}
break;
- case DAMON_SYSFS_CMD_CLEAR_SCHEMES_TRIED_REGIONS:
- err = damon_sysfs_clear_schemes_regions(kdamond);
- break;
case DAMON_SYSFS_CMD_UPDATE_SCHEMES_EFFECTIVE_QUOTAS:
err = damon_sysfs_upd_schemes_effective_quotas(kdamond);
break;
@@ -1549,6 +1535,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_CLEAR_SCHEMES_TRIED_REGIONS:
+ return damon_sysfs_schemes_clear_regions(
+ kdamond->contexts->contexts_arr[0]->schemes);
default:
break;
}
--
2.39.5
next prev parent reply other threads:[~2025-01-03 17:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-03 17:43 [PATCH 00/10] mm/damon: replace most damon_callback usages in sysfs with new core functions SeongJae Park
2025-01-03 17:43 ` [PATCH 01/10] mm/damon/sysfs-schemes: remove unnecessary schemes existence check in damon_sysfs_schemes_clear_regions() SeongJae Park
2025-01-03 17:43 ` SeongJae Park [this message]
2025-01-03 17:43 ` [PATCH 03/10] mm/damon/core: introduce damon_call() SeongJae Park
2025-01-03 17:43 ` [PATCH 04/10] mm/damon/sysfs: use damon_call() for update_schemes_stats SeongJae Park
2025-01-03 17:43 ` [PATCH 05/10] mm/damon/sysfs: use damon_call() for commit_schemes_quota_goals SeongJae Park
2025-01-03 17:43 ` [PATCH 06/10] mm/damon/sysfs: use damon_call() for update_schemes_effective_quotas SeongJae Park
2025-01-03 17:43 ` [PATCH 07/10] mm/damon/core: implement damos_walk() SeongJae Park
2025-01-03 17:43 ` [PATCH 08/10] Docs/mm/damon/design: document DAMOS regions walking SeongJae Park
2025-01-03 17:43 ` [PATCH 09/10] mm/damon/sysfs: use damos_walk() for update_schemes_tried_{bytes,regions} SeongJae Park
2025-01-03 17:44 ` [PATCH 10/10] mm/damon/sysfs: remove unused code for schemes tried regions update SeongJae Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250103174400.54890-3-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox