mm/damon/stat: add kdamond_pid parameter
Subsystems (4)
SeongJae Park
maintainercover mm/damon/stat: add kdamond_pid parameter
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 v2
- v2: https://lore.kernel.org/[email protected]
- Rebase to latest mm-new.
Changes from RFC v1.2
- rfc v1.2: https://lore.kernel.org/[email protected]
- Detect and use fresh kdamond pid.
Changes from RFC v1.1
- rfc v1.1: https://lore.kernel.org/[email protected]
- Close the parentheses of error handling block.
Changes from RFC
- rfc: https://lore.kernel.org/[email protected]
- 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 | 38 +++++++++++++++++++++ 2 files changed, 45 insertions(+)
base-commit: b8e00b62c650b2aa471195f663301118fde889c2
Signature · 1 line
2.47.3
SeongJae Park
maintainerRFC PATCH 1/2 mm/damon/stat: add a parameter for reading kdamond pid
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.
--- mm/damon/stat.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+)
mm/damon/stat.c +38 -0
@@ -266,6 +266,44 @@ static int damon_stat_enabled_load(char *buffer, const struct kernel_param *kp)return sprintf (buffer,"%c\n" ,damon_stat_enabled () ?'Y' :'N' ); } +static int damon_stat_kdamond_pid_store ( +const char *val,const struct kernel_param *kp) +{ +/* +* kdamond_pid is read-only, but kernel command line could write it. +* Do nothing here. +*/ +return 0 ; +} + +static int damon_stat_kdamond_pid_load ( +char *buffer,const struct kernel_param *kp) +{ +int pid; + +if (!damon_stat_context) { + pid =-1 ; + }else { + pid =damon_kdamond_pid (damon_stat_context); +if (pid <1 ) + pid =-1 ; + } +return sprintf (buffer,"%d\n" , pid); +} + +static const struct kernel_param_ops kdamond_pid_param_ops = { + .set = damon_stat_kdamond_pid_store, + .get = damon_stat_kdamond_pid_load, +}; + +/* +* PID of the DAMON thread +* +* If DAMON_STAT is enabled, this becomes the PID of the worker thread. +* Else, -1. +*/ +module_param_cb (kdamond_pid, &kdamond_pid_param_ops,NULL ,0400 ); +static int __init damon_stat_init (void ) {int err =0 ;
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v2.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] The newly added `kdamond_pid` module parameter lacks a `MODULE_PARM_DESC` declaration. --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The newly added kdamond_pid module parameter lacks a MODULE_PARM_DESC declaration. --
commit d56734720ba3e7838cd85a1ac6661cf5e54d9a3b
Author: SeongJae Park <[email protected]>
mm/damon/stat: add a parameter for reading kdamond pid
Expose the pid of DAMON_STAT kdamond via a new read-only module parameter named kdamond_pid. This standardizes DAMON module usage, as DAMON_RECLAIM and DAMON_LRU_SORT also provide this information.
Quoted 4 lines
mm/damon/stat.c +0
-0
[ ... ]
mm/damon/stat.c static int damon_stat_enabled_load(char *buffer, const struct kernel_param *kp) · line 305
Quoted 12 lines
mm/damon/stat.c +12
-0+static const struct kernel_param_ops kdamond_pid_param_ops = { + .set = damon_stat_kdamond_pid_store, + .get = damon_stat_kdamond_pid_load, +}; + +/* +* PID of the DAMON thread +* +* If DAMON_STAT is enabled, this becomes the PID of the worker thread. +* Else, -1. +*/ +module_param_cb (kdamond_pid, &kdamond_pid_param_ops,NULL ,0400 );
This isn't a bug, but should this module parameter include a MODULE_PARM_DESC() declaration?
Other parameters in mm/damon/stat.c like enabled, estimated_memory_bandwidth, and memory_idle_ms_percentiles have corresponding MODULE_PARM_DESC() declarations.
Quoted 4 lines
mm/damon/stat.c +1
-0+static int __init damon_stat_init (void ) {int err =0 ;
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
SeongJae Park
maintainerRe: [RFC PATCH v2.1 1/2] mm/damon/stat: add a parameter for reading kdamond pid
Quoted 34 lines · On Thu, 30 Apr 2026 15:14:18 +0000 [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The newly addedkdamond_pidmodule parameter lacks aMODULE_PARM_DESCdeclaration. --commit
d56734720ba3e7838cd85a1ac6661cf5e54d9a3b
Author: SeongJae Park <[email protected]>
mm/damon/stat: add a parameter for reading kdamond pidExpose the pid of
DAMON_STATkdamond via a new read-only module parameter namedkdamond_pid. This standardizes DAMON module usage, asDAMON_RECLAIMandDAMON_LRU_SORTalso provide this information.Quoted 4 lines
mm/damon/stat.c +0
-0[ ... ]
mm/damon/stat.c static int damon_stat_enabled_load(char *buffer, const struct kernel_param *kp) · line 305
Quoted 12 lines
mm/damon/stat.c +12
-0+static const struct kernel_param_ops kdamond_pid_param_ops = { + .set = damon_stat_kdamond_pid_store, + .get = damon_stat_kdamond_pid_load, +}; + +/* +* PID of the DAMON thread +* +* If DAMON_STAT is enabled, this becomes the PID of the worker thread. +* Else, -1. +*/ +module_param_cb (kdamond_pid, &kdamond_pid_param_ops,NULL ,0400 );This isn't a bug, but should this module parameter include a
MODULE_PARM_DESC()declaration?
Quoted 3 lines
Other parameters in
mm/damon/stat.clike enabled,estimated_memory_bandwidth, andmemory_idle_ms_percentileshave correspondingMODULE_PARM_DESC()declarations.
Good finding, I will add that.
Thanks,
SJ
[...]
SeongJae Park
maintainerRFC PATCH 2/2 Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter
In reply to SeongJae ParkUpdate DAMON_STAT usage document for newly added kdamond_pid parameter.
--- Documentation/admin-guide/mm/damon/stat.rst | 7 +++++++ 1 file changed, 7 insertions(+)
Documentation/admin-guide/mm/damon/stat.rst +7 -0
@@ -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.
Signature · 1 line
2.47.3