[RFC PATCH v2 13/17] mm/damon/sysfs: pass preps to DAMON core
From: SJ Park
Date: Sun Jul 26 2026 - 13:40:58 EST
DAMON sysfs interface provides the files for setting DAMON probe preps.
But the underlying code is not really passing the user-set values to
DAMON core. Pass those.
Signed-off-by: SJ Park <sj@xxxxxxxxxx>
---
mm/damon/sysfs.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index f275a6f73eee1..d7a2b62322841 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -2174,6 +2174,23 @@ static int damon_sysfs_set_attrs(struct damon_ctx *ctx,
return damon_set_attrs(ctx, &attrs);
}
+static int damon_sysfs_set_preps(struct damon_probe *probe,
+ struct damon_sysfs_preps *sys_preps)
+{
+ int i;
+
+ for (i = 0; i < sys_preps->nr; i++) {
+ struct damon_sysfs_prep *sys_prep = sys_preps->preps_arr[i];
+ struct damon_prep *prep;
+
+ prep = damon_new_prep(sys_prep->action);
+ if (!prep)
+ return -ENOMEM;
+ damon_add_prep(probe, prep);
+ }
+ return 0;
+}
+
static int damon_sysfs_set_filters(struct damon_probe *probe,
struct damon_sysfs_filters *sys_filters)
{
@@ -2209,7 +2226,15 @@ static int damon_sysfs_set_probe(struct damon_probe *probe,
struct damon_sysfs_probe *sys_probe)
{
struct damon_sysfs_filters *sys_filters;
+ struct damon_sysfs_preps *sys_preps;
+ int err;
+ sys_preps = sys_probe->preps;
+ if (sys_preps) {
+ err = damon_sysfs_set_preps(probe, sys_preps);
+ if (err)
+ return err;
+ }
sys_filters = sys_probe->filters;
if (!sys_filters)
return 0;
--
2.47.3