* [RFC PATCH v1.1 0/2] mm/damon/stat: add kdamond_pid parameter
@ 2026-04-14 23:59 SeongJae Park
2026-04-14 23:59 ` [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid SeongJae Park
2026-04-14 23:59 ` [RFC PATCH v1.1 2/2] Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter SeongJae Park
0 siblings, 2 replies; 5+ messages in thread
From: SeongJae Park @ 2026-04-14 23:59 UTC (permalink / raw)
Cc: SeongJae Park, Liam R. Howlett, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Lorenzo Stoakes, Michal Hocko, Mike Rapoport,
Shuah Khan, Suren Baghdasaryan, Vlastimil Babka, damon, linux-doc,
linux-kernel, linux-mm
DAMON_STAT doesn't provide the pid of its kdamond, unlike DAMON_RECLAIM
and DAMON_LRU_SORT. This makes user-space management of DAMON_STAT
unnecessarily complicated. Provide the information via a new parameter,
namely kdamond_pid, and document it.
Changes from RFC
- rfc: https://lore.kernel.org/20260414053742.90296-1-sj@kernel.org
- Fix damon_kdamond_pid() failure handling.
SeongJae Park (2):
mm/damon/stat: add a parameter for reading kdamond pid
Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter
Documentation/admin-guide/mm/damon/stat.rst | 7 +++++++
mm/damon/stat.c | 17 +++++++++++++++++
2 files changed, 24 insertions(+)
base-commit: 02784c37a710fa3c8c3e7be4f27a5cfa3356dc00
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid
2026-04-14 23:59 [RFC PATCH v1.1 0/2] mm/damon/stat: add kdamond_pid parameter SeongJae Park
@ 2026-04-14 23:59 ` SeongJae Park
2026-04-15 0:16 ` sashiko-bot
2026-04-14 23:59 ` [RFC PATCH v1.1 2/2] Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter SeongJae Park
1 sibling, 1 reply; 5+ messages in thread
From: SeongJae Park @ 2026-04-14 23:59 UTC (permalink / raw)
Cc: SeongJae Park, Andrew Morton, damon, linux-kernel, linux-mm
Knowing the pid of the kdamonds can help user-space management including
monitoring of DAMON's system resource consumption. To make it easier,
DAMON_SYSFS, DAMON_RECLAIM and DAMON_LRU_SORT provide the pid
information. DAMON_STAT is not providing it, though. Expose the pid of
DAMON_STAT kdamond via a new read-only module parameter, namely
kdamond_pid. This also makes DAMON modules usage more standardized,
because DAMON_RECLAIM and DAMON_LRU_SORT also provide the information
via their read-only parameters of the same name.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/damon/stat.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/mm/damon/stat.c b/mm/damon/stat.c
index 99ba346f9e325..510c593a313b8 100644
--- a/mm/damon/stat.c
+++ b/mm/damon/stat.c
@@ -44,6 +44,15 @@ module_param(aggr_interval_us, ulong, 0400);
MODULE_PARM_DESC(aggr_interval_us,
"Current tuned aggregation interval in microseconds");
+/*
+ * PID of the DAMON thread
+ *
+ * If DAMON_STAT is enabled, this becomes the PID of the worker thread.
+ * Else, -1.
+ */
+static int kdamond_pid __read_mostly = -1;
+module_param(kdamond_pid, int, 0400);
+
static struct damon_ctx *damon_stat_context;
static unsigned long damon_stat_last_refresh_jiffies;
@@ -260,6 +269,13 @@ static int damon_stat_start(void)
damon_stat_context = NULL;
return err;
}
+ kdamond_pid = damon_kdamond_pid(damon_stat_context);
+ if (kdamond_pid < 0) {
+ err = kdamond_pid;
+ kdamond_pid = -1;
+ damon_destroy_ctx(damon_stat_context);
+ damon_stat_context = NULL;
+ return err;
damon_stat_last_refresh_jiffies = jiffies;
call_control.data = damon_stat_context;
@@ -269,6 +285,7 @@ static int damon_stat_start(void)
static void damon_stat_stop(void)
{
damon_stop(&damon_stat_context, 1);
+ kdamond_pid = -1;
damon_destroy_ctx(damon_stat_context);
damon_stat_context = NULL;
}
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [RFC PATCH v1.1 2/2] Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter
2026-04-14 23:59 [RFC PATCH v1.1 0/2] mm/damon/stat: add kdamond_pid parameter SeongJae Park
2026-04-14 23:59 ` [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid SeongJae Park
@ 2026-04-14 23:59 ` SeongJae Park
1 sibling, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2026-04-14 23:59 UTC (permalink / raw)
Cc: SeongJae Park, Liam R. Howlett, Andrew Morton, David Hildenbrand,
Jonathan Corbet, Lorenzo Stoakes, Michal Hocko, Mike Rapoport,
Shuah Khan, Suren Baghdasaryan, Vlastimil Babka, damon, linux-doc,
linux-kernel, linux-mm
Update DAMON_STAT usage document for newly added kdamond_pid parameter.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
Documentation/admin-guide/mm/damon/stat.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/admin-guide/mm/damon/stat.rst b/Documentation/admin-guide/mm/damon/stat.rst
index c4b14daeb2dd6..46c5dd96aa2ed 100644
--- a/Documentation/admin-guide/mm/damon/stat.rst
+++ b/Documentation/admin-guide/mm/damon/stat.rst
@@ -89,3 +89,10 @@ percentiles of the idle time values via this read-only parameter. Reading the
parameter returns 101 idle time values in milliseconds, separated by comma.
Each value represents 0-th, 1st, 2nd, 3rd, ..., 99th and 100th percentile idle
times.
+
+kdamond_pid
+-----------
+
+PID of the DAMON thread.
+
+If DAMON_STAT is enabled, this becomes the PID of the worker thread. Else, -1.
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid
2026-04-14 23:59 ` [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid SeongJae Park
@ 2026-04-15 0:16 ` sashiko-bot
2026-04-15 0:35 ` SeongJae Park
0 siblings, 1 reply; 5+ messages in thread
From: sashiko-bot @ 2026-04-15 0:16 UTC (permalink / raw)
To: SeongJae Park; +Cc: damon
Sashiko AI review found 1 potential issue(s):
- [Low] Missing closing brace `}` in `damon_stat_start()` error path causes compilation failure.
--
commit 04b7136ae6b7cd907673996f57f0a613de1984b9
Author: SeongJae Park <sj@kernel.org>
mm/damon/stat: add a parameter for reading kdamond pid
This commit exposes the pid of the DAMON_STAT kdamond via a new read-only
module parameter named kdamond_pid to help user-space management and
monitoring.
> diff --git a/mm/damon/stat.c b/mm/damon/stat.c
> --- a/mm/damon/stat.c
> +++ b/mm/damon/stat.c
[ ... ]
> @@ -260,6 +269,13 @@ static int damon_stat_start(void)
> damon_stat_context = NULL;
> return err;
> }
> + kdamond_pid = damon_kdamond_pid(damon_stat_context);
> + if (kdamond_pid < 0) {
> + err = kdamond_pid;
> + kdamond_pid = -1;
> + damon_destroy_ctx(damon_stat_context);
> + damon_stat_context = NULL;
> + return err;
Is there a missing closing brace for the if (kdamond_pid < 0) block here?
It looks like the omission will swallow the rest of the function into the
error path and cause a compilation failure.
>
> damon_stat_last_refresh_jiffies = jiffies;
> call_control.data = damon_stat_context;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260414235912.98174-1-sj@kernel.org?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid
2026-04-15 0:16 ` sashiko-bot
@ 2026-04-15 0:35 ` SeongJae Park
0 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2026-04-15 0:35 UTC (permalink / raw)
To: sashiko-bot; +Cc: SeongJae Park, damon
On Wed, 15 Apr 2026 00:16:14 +0000 sashiko-bot@kernel.org wrote:
> Sashiko AI review found 1 potential issue(s):
> - [Low] Missing closing brace `}` in `damon_stat_start()` error path causes compilation failure.
> --
>
> commit 04b7136ae6b7cd907673996f57f0a613de1984b9
> Author: SeongJae Park <sj@kernel.org>
>
> mm/damon/stat: add a parameter for reading kdamond pid
>
> This commit exposes the pid of the DAMON_STAT kdamond via a new read-only
> module parameter named kdamond_pid to help user-space management and
> monitoring.
>
> > diff --git a/mm/damon/stat.c b/mm/damon/stat.c
> > --- a/mm/damon/stat.c
> > +++ b/mm/damon/stat.c
>
> [ ... ]
>
> > @@ -260,6 +269,13 @@ static int damon_stat_start(void)
> > damon_stat_context = NULL;
> > return err;
> > }
> > + kdamond_pid = damon_kdamond_pid(damon_stat_context);
> > + if (kdamond_pid < 0) {
> > + err = kdamond_pid;
> > + kdamond_pid = -1;
> > + damon_destroy_ctx(damon_stat_context);
> > + damon_stat_context = NULL;
> > + return err;
>
> Is there a missing closing brace for the if (kdamond_pid < 0) block here?
> It looks like the omission will swallow the rest of the function into the
> error path and cause a compilation failure.
Good eye. I will fix this in the next revision.
Thanks,
SJ
[...]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-15 0:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-14 23:59 [RFC PATCH v1.1 0/2] mm/damon/stat: add kdamond_pid parameter SeongJae Park
2026-04-14 23:59 ` [RFC PATCH v1.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid SeongJae Park
2026-04-15 0:16 ` sashiko-bot
2026-04-15 0:35 ` SeongJae Park
2026-04-14 23:59 ` [RFC PATCH v1.1 2/2] Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter SeongJae Park
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.