mm/damon: introduce hugepage_size probe filter
Subsystems (4)
SJ Park
maintainerv3 cover mm/damon: introduce hugepage_size probe filter
Knowing whether a given memory is backed by a hugepage of specific size is useful for efficient utilization of hugepages. For easy monitoring of the information, introduce a new data attribute probe filter type, hugepage_size. It works similar to the DAMOS filter of the same name. It works for memory that is backed by a hugepage of a given size range.
Patch 1 introduces the new probe filter type to DAMON API and extends related data structures. Patch 2 updates probe filter commit logic to handle the size range. Patch 3 Updates the filtering logic to support the new type. Patch 4 adds new DAMON sysfs files for the size range. Patch 5 updates DAMON sysfs interface to fully support the new filter type. Patches 6-8 updates design, usage and ABI documents for the new feature.
Test
====
Set THP always and start a test workload using masim [1].
$ echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
$ ./masim.py run --config_file ./configs/stairs-500mb.cfg --repeat 10Using the DAMON user-space tool, damo [2], start DAMON with two probes. The primary probe monitors access. The secondary probe monitors 2 MiB sized hugepages. The region adjustment weight is given to only the primary probe. That is, this setup is for showing access temperature and additionally how many 2 MiB hugepages are being used for the region of the access temperature.
$ sudo ./damo start $(pidof masim) \
--probe \
--probe_prep set_pgidle --probe_filter allow pgidle_unset \
--probe_weight 1 \
--probe \
--probe_filter allow hugepage_size 2M 2MShow the monitoring results.
$ sudo ./damo report attrs
heatmap: 000000000003[...]666666666666666666666666666666666666666666666668888888888888988888888[...]8
# min/max temperatures: -2,770,000,000, 68,474,934, column size: 69.784 MiB
probes
- prep: set_pgidle, filter: allow pgidle_unset (weight: 1)
- allow hugepage_size [2.000 MiB, 2.000 MiB] (weight: 0)
intervals: sample 5 ms aggr 100 ms (max probe hits 20)
# size address age probe_hits
0 250.805 MiB 86.185 TiB 27.700 s 0 0
1 556.285 MiB 86.184 TiB 27.400 s 0 0
2 1.629 GiB 127.488 TiB 8.500 s 0 4
3 535.770 MiB 127.490 TiB 8.400 s 0 7
4 1.066 GiB 127.490 TiB 8.200 s 0 6
5 501.332 MiB 127.492 TiB 600 ms 0 12
[...]
50 146.133 MiB 127.492 TiB 200 ms 2 20
51 16.000 KiB 127.492 TiB 200 ms 11 20
52 144.000 KiB 127.492 TiB 200 ms 17 20
53 48.000 KiB 127.492 TiB 200 ms 18 20
54 1.930 MiB 127.492 TiB 200 ms 19 20
[...]
101 1.996 MiB 127.492 TiB 2.100 s 1 20
102 1.992 MiB 127.492 TiB 2.100 s 20 20
103 1.984 MiB 127.492 TiB 2.200 s 1 20
104 2.000 MiB 127.492 TiB 2.300 s 20 20
105 2.000 MiB 127.492 TiB 2.600 s 20 20
memory bw estimate: 0 B per second
total size: 5.452 GiB
record DAMON intervals: sample 5 ms, aggr 100 msThe first probe_hits count and the age show the access temperature of each region. The region is sorted by access temperature, which is a weighted sum of the first probe_hits count and the age. That is, regions at the beginning of the list are colder than those at the end of the list. The second probe_hits count shows the ratio of 2 MiB hugepages in the region.
For example, region 5, which has 501.332 MiB size, has not accessed for the last 600 milliseconds and uses 2 MiB THP for ~60% (12/20) of the region.
Region 105, which is 2 MiB size, has been accessed at least 20 times per 100 milliseconds for the last 2.6 seconds) and fully backed by 2 MiB hugepage.
[1] https://github.com/sjp38/masim
[2] https://github.com/damonitor/damo
Changes from RFC v2
- RFC v2: https://lore.kernel.org/[email protected]
- Free new filter for invalid filter commit case.
Changes from RFC
- RFC: https://lore.kernel.org/[email protected]
- Commit size range for newly added hugepage_size filter.
- Rebase to latest mm-new.
SJ Park (8):
mm/damon/api: introduce DAMON_FILTER_TYPE_HUGEPAGE_SIZE mm/damon/core: commit hugepage_size type damon filter mm/damon/ops-common: support hugepage_size damon filter matching mm/damon/sysfs: add min,max files under probe filter directory mm/damon/sysfs: support hugepage_size probe filter Docs/mm/damon/design: update for hugepage_size probe filter Docs/admin-guide/mm/damon/usage: update for hugepage_size Docs/ABI/damon: update for hugepage_size probe filter
.../ABI/testing/sysfs-kernel-mm-damon | 14 +++++ Documentation/admin-guide/mm/damon/usage.rst | 4 +- Documentation/mm/damon/design.rst | 2 + include/linux/damon.h | 8 +++ mm/damon/core.c | 28 ++++++++-- mm/damon/ops-common.c | 10 ++++ mm/damon/sysfs.c | 55 +++++++++++++++++++ 7 files changed, 115 insertions(+), 6 deletions(-)
base-commit: 015e1675b7b4f621c0e89dd6fab5e0c82b83e94a
Signature · 1 line
2.47.3
SJ Park
maintainerRFC PATCH v3 1/8 mm/damon/api: introduce DAMON_FILTER_TYPE_HUGEPAGE_SIZE
Introduce a new data attribute probe filter type, hugepage_size. It will work for memory that is backed by a hugepage of a given size range. Add a new damon_filter_type enum DAMON_FILTER_TYPE_HUGEPAGE_SIZE to identify the type. Add two new fields in the damon_filter struct for saving the size range.
--- include/linux/damon.h | 8 ++++++++ 1 file changed, 8 insertions(+)
include/linux/damon.h +8 -0
@@ -783,12 +783,14 @@ struct damon_prep {* @DAMON_FILTER_TYPE_MEMCG: Specific memcg's pages. * @DAMON_FILTER_TYPE_PGIDLE_UNSET: Pgidle is unset. * @DAMON_FILTER_TYPE_PGIDLE_SET: Pgidle is set. +* @DAMON_FILTER_TYPE_HUGEPAGE_SIZE: Page is part of a hugepage. */ enum damon_filter_type {DAMON_FILTER_TYPE_ANON ,DAMON_FILTER_TYPE_MEMCG ,DAMON_FILTER_TYPE_PGIDLE_UNSET ,DAMON_FILTER_TYPE_PGIDLE_SET , +DAMON_FILTER_TYPE_HUGEPAGE_SIZE , };/**
@@ -798,6 +800,8 @@ enum damon_filter_type {* @matching: Whether this filter is for the type-matching ones. * @allow: Whether the @type-@matching ones should pass this filter. * @memcg_id: Memcg id of the question if @type is DAMON_FILTER_MEMCG. +* @range_min: Minimum value of range arguments. +* @range_max: Maximum value of range arguments. */ struct damon_filter {enum damon_filter_type type;
@@ -805,6 +809,10 @@ struct damon_filter {bool allow;union {u64 memcg_id; +struct { +unsigned long range_min; +unsigned long range_max; + }; };/* private: */ /* Siblings list. */
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 1/8] mm/damon/api: introduce DAMON_FILTER_TYPE_HUGEPAGE_SIZE
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 7 lines
Introduce a new data attribute probe filter type,
hugepage_size. It will work for memory that is backed by a hugepage of a given size range. Add a newdamon_filter_typeenumDAMON_FILTER_TYPE_HUGEPAGE_SIZEto identify the type. Add two new fields in thedamon_filterstruct for saving the size range.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
SJ Park
maintainerRFC PATCH v3 2/8 mm/damon/core: commit hugepage_size type damon filter
In reply to SJ ParkExtend data attribute probe filters commit logic for the new hugepage_size filter type. Since it needs to carry the size range of the hugepage, update the logic to update the size range fields of the commit destination filter struct. While doing that, validate the given range and propagate an error if it is invalid. Add the error handling in the callers, too.
--- mm/damon/core.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-)
mm/damon/core.c +23 -5
@@ -1818,7 +1818,7 @@ static int damon_commit_preps(struct damon_probe *dst, struct damon_probe *src)return 0 ; } -static void damon_commit_filter (struct damon_filter *dst, +static int damon_commit_filter (struct damon_filter *dst,struct damon_filter *src) { dst->type = src->type;
@@ -1828,23 +1828,33 @@ static void damon_commit_filter(struct damon_filter *dst,case DAMON_FILTER_TYPE_MEMCG : dst->memcg_id = src->memcg_id;break ; +case DAMON_FILTER_TYPE_HUGEPAGE_SIZE : +if (src->range_max < src->range_min) +return -EINVAL ; + dst->range_min = src->range_min; + dst->range_max = src->range_max; +break ;default :break ; } +return 0 ; }static int damon_commit_filters (struct damon_probe *dst,struct damon_probe *src) {struct damon_filter *dst_filter, *next, *src_filter, *new_filter; -int i =0 , j =0 ; +int i =0 , j =0 , err;damon_for_each_filter_safe (dst_filter, next, dst) { src_filter =damon_nth_filter (i++, src); -if (src_filter) -damon_commit_filter (dst_filter, src_filter); -else +if (src_filter) { + err =damon_commit_filter (dst_filter, src_filter); +if (err) +return err; + }else {damon_destroy_filter (dst_filter); + } }damon_for_each_filter_safe (src_filter, next, src) {
@@ -1859,6 +1869,14 @@ static int damon_commit_filters(struct damon_probe *dst,case DAMON_FILTER_TYPE_MEMCG : new_filter->memcg_id = src_filter->memcg_id;break ; +case DAMON_FILTER_TYPE_HUGEPAGE_SIZE : +if (src_filter->range_max < src_filter->range_min) { +damon_destroy_filter (new_filter); +return -EINVAL ; + } + new_filter->range_min = src_filter->range_min; + new_filter->range_max = src_filter->range_max; +break ;default :break ; }
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 2/8] mm/damon/core: commit hugepage_size type damon filter
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 8 lines
Extend data attribute probe filters commit logic for the new
hugepage_sizefilter type. Since it needs to carry the size range of the hugepage, update the logic to update the size range fields of the commit destination filter struct. While doing that, validate the given range and propagate an error if it is invalid. Add the error handling in the callers, too.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
SJ Park
maintainerRFC PATCH v3 3/8 mm/damon/ops-common: support hugepage_size damon filter matching
In reply to SJ ParkUpdate ops-common data attribute filter matching logic to support hugepage_size filter type.
--- mm/damon/ops-common.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
mm/damon/ops-common.c +10 -0
@@ -536,6 +536,7 @@ bool damon_ops_filter_match(struct damon_filter *filter, struct folio *folio) {bool matched = false;struct mem_cgroup *memcg; +size_t folio_sz;switch (filter->type) {case DAMON_FILTER_TYPE_ANON :
@@ -558,6 +559,15 @@ bool damon_ops_filter_match(struct damon_filter *filter, struct folio *folio) matched = filter->memcg_id ==mem_cgroup_id (memcg);rcu_read_unlock ();break ; +case DAMON_FILTER_TYPE_HUGEPAGE_SIZE : +if (!folio) { + matched = false; +break ; + } + folio_sz =folio_size (folio); + matched = filter->range_min <= folio_sz && + folio_sz <= filter->range_max; +break ;default :break ; }
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 3/8] mm/damon/ops-common: support hugepage_size damon filter matching
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 4 lines
Update ops-common data attribute filter matching logic to support
hugepage_sizefilter type.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
SJ Park
maintainerRFC PATCH v3 4/8 mm/damon/sysfs: add min,max files under probe filter directory
In reply to SJ ParkIn future, DAMON sysfs interface will support data attribute probe filter types that have range arguments like the newly added hugepage_size type filter. To prepare such supports, add two new DAMON sysfs files, min and max, under the probe filter directory.
--- mm/damon/sysfs.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)
mm/damon/sysfs.c +48 -0
@@ -975,6 +975,8 @@ struct damon_sysfs_filter {bool matching;bool allow;char *path; +unsigned long range_min; +unsigned long range_max; };static struct damon_sysfs_filter *damon_sysfs_filter_alloc (void )
@@ -1127,6 +1129,44 @@ static ssize_t path_store(struct kobject *kobj,return count; } +static ssize_t min_show (struct kobject *kobj, +struct kobj_attribute *attr,char *buf) +{ +struct damon_sysfs_filter *filter =container_of (kobj, + struct damon_sysfs_filter, kobj); + +return sysfs_emit (buf,"%lu\n" , filter->range_min); +} + +static ssize_t min_store (struct kobject *kobj, +struct kobj_attribute *attr,const char *buf,size_t count) +{ +struct damon_sysfs_filter *filter =container_of (kobj, + struct damon_sysfs_filter, kobj); +int err =kstrtoul (buf,0 , &filter->range_min); + +return err ? err : count; +} + +static ssize_t max_show (struct kobject *kobj, +struct kobj_attribute *attr,char *buf) +{ +struct damon_sysfs_filter *filter =container_of (kobj, + struct damon_sysfs_filter, kobj); + +return sysfs_emit (buf,"%lu\n" , filter->range_max); +} + +static ssize_t max_store (struct kobject *kobj, +struct kobj_attribute *attr,const char *buf,size_t count) +{ +struct damon_sysfs_filter *filter =container_of (kobj, + struct damon_sysfs_filter, kobj); +int err =kstrtoul (buf,0 , &filter->range_max); + +return err ? err : count; +} +static void damon_sysfs_filter_release (struct kobject *kobj) { struct damon_sysfs_filter *filter = container_of(kobj,
@@ -1148,11 +1188,19 @@ static struct kobj_attribute damon_sysfs_filter_allow_attr =static struct kobj_attribute damon_sysfs_filter_path_attr =__ATTR_RW_MODE (path,0600 ); +static struct kobj_attribute damon_sysfs_filter_min_attr = +__ATTR_RW_MODE (min,0600 ); + +static struct kobj_attribute damon_sysfs_filter_max_attr = +__ATTR_RW_MODE (max,0600 ); +static struct attribute *damon_sysfs_filter_attrs[] = { &damon_sysfs_filter_type_attr.attr, &damon_sysfs_filter_matching_attr.attr, &damon_sysfs_filter_allow_attr.attr, &damon_sysfs_filter_path_attr.attr, + &damon_sysfs_filter_min_attr.attr, + &damon_sysfs_filter_max_attr.attr,NULL , };ATTRIBUTE_GROUPS (damon_sysfs_filter);
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 4/8] mm/damon/sysfs: add min,max files under probe filter directory
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 6 lines
In future, DAMON sysfs interface will support data attribute probe filter types that have range arguments like the newly added
hugepage_sizetype filter. To prepare such supports, add two new DAMON sysfs files, min and max, under the probe filter directory.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=4
SJ Park
maintainerRFC PATCH v3 5/8 mm/damon/sysfs: support hugepage_size probe filter
In reply to SJ ParkExtend DAMON sysfs interface to support hugepage_size probe filter. Allows hugepage_size user string input to the filter type file. Pass the size range argument that users set via min/max files under the probe filter directory to the DAMON core.
--- mm/damon/sysfs.c | 7 +++++++ 1 file changed, 7 insertions(+)
mm/damon/sysfs.c +7 -0
@@ -1007,6 +1007,10 @@ damon_sysfs_filter_type_names[] = { .type = DAMON_FILTER_TYPE_PGIDLE_SET, .name = "pgidle_set", }, + { + .type = DAMON_FILTER_TYPE_HUGEPAGE_SIZE, + .name = "hugepage_size", + }, }; static ssize_t type_show(struct kobject *kobj,
@@ -2273,6 +2277,9 @@ static int damon_sysfs_set_filters(struct damon_probe *probe,damon_destroy_filter (filter);return err; } + }else if (filter->type ==DAMON_FILTER_TYPE_HUGEPAGE_SIZE ) { + filter->range_min = sys_filter->range_min; + filter->range_max = sys_filter->range_max; }damon_add_filter (probe, filter); }
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 5/8] mm/damon/sysfs: support hugepage_size probe filter
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] mm: partial commit failure in damon_commit_filter() causes DAMON context state corruption --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] mm: partial commit failure in damon_commit_filter() causes DAMON context state corruption --
commit bba894847aad85f23c968a2f306ec06c6e1b1a8c
Author: SJ Park <[email protected]>
mm/damon/sysfs: support hugepage_size probe filter
Extend DAMON sysfs interface to support hugepage_size probe filter. Allows hugepage_size user string input to the filter type file. Pass the size range argument that users set via min/max files under the probe filter directory to the DAMON core.
Quoted 4 lines
mm/damon/sysfs.c +0
-0
[ ... ]
mm/damon/sysfs.c static int damon_sysfs_set_filters(struct damon_probe *probe, · line 2283
Quoted 8 lines
mm/damon/sysfs.c +3
-0@@ -2273,6 +2277,9 @@ static int damon_sysfs_set_filters(struct damon_probe *probe,damon_destroy_filter (filter);return err; } + }else if (filter->type ==DAMON_FILTER_TYPE_HUGEPAGE_SIZE ) { + filter->range_min = sys_filter->range_min; + filter->range_max = sys_filter->range_max; }
[Severity: High]
Can an invalid hugepage_size range (where range_min > range_max) cause state corruption in the DAMON context?
When a user configures a hugepage_size filter with range_min > range_max, the values are copied blindly here into the intermediate context without validation.
During the subsequent commit, damon_commit_filter() in mm/damon/core.c updates the destination filter:
mm/damon/core.c:damon_commit_filter() {
dst->type = src->type;
dst->matching = src->matching;
dst->allow = src->allow;
switch (dst->type) {
case DAMON_FILTER_TYPE_MEMCG:
dst->memcg_id = src->memcg_id;
break;
case DAMON_FILTER_TYPE_HUGEPAGE_SIZE:
if (src->range_max < src->range_min)
return -EINVAL;...
}
Because the validation fails and returns -EINVAL after dst->type, dst->matching, and dst->allow have already been updated, the commit aborts midway. This leaves the active DAMON context's filter partially mutated, interpreting its previous union field (like memcg_id) as the new range bounds.
Could validation be added to damon_sysfs_set_filters() in mm/damon/sysfs.c to prevent invalid bounds from reaching the core commit logic?
Quoted 2 lines
mm/damon/sysfs.c +0
-0damon_add_filter (probe, filter); }
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=5
SJ Park
maintainerRe: [RFC PATCH v3 5/8] mm/damon/sysfs: support hugepage_size probe filter
Quoted 53 lines · On Tue, 15 Sep 2026 02:24:30 +0000 [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] mm: partial commit failure indamon_commit_filter()causes DAMON context state corruption --commit
bba894847aad85f23c968a2f306ec06c6e1b1a8c
Author: SJ Park <[email protected]>
mm/damon/sysfs: supporthugepage_sizeprobe filterExtend DAMON sysfs interface to support
hugepage_sizeprobe filter. Allowshugepage_sizeuser string input to the filter type file. Pass the size range argument that users set via min/max files under the probe filter directory to the DAMON core.Quoted 4 lines
mm/damon/sysfs.c +0
-0[ ... ]
mm/damon/sysfs.c static int damon_sysfs_set_filters(struct damon_probe *probe, · line 2283
Quoted 8 lines
mm/damon/sysfs.c +3
-0@@ -2273,6 +2277,9 @@ static int damon_sysfs_set_filters(struct damon_probe *probe,damon_destroy_filter (filter);return err; } + }else if (filter->type ==DAMON_FILTER_TYPE_HUGEPAGE_SIZE ) { + filter->range_min = sys_filter->range_min; + filter->range_max = sys_filter->range_max; }[Severity: High]
Can an invalidhugepage_sizerange (whererange_min>range_max) cause state corruption in the DAMON context?When a user configures a
hugepage_sizefilter withrange_min>range_max, the values are copied blindly here into the intermediate context without validation.During the subsequent commit,
damon_commit_filter()inmm/damon/core.cupdates the destination filter:mm/damon/core.c:damon_commit_filter() { dst->type = src->type; dst->matching = src->matching; dst->allow = src->allow; switch (dst->type) { case DAMON_FILTER_TYPE_MEMCG: dst->memcg_id = src->memcg_id; break; case DAMON_FILTER_TYPE_HUGEPAGE_SIZE: if (src->range_max < src->range_min) return -EINVAL;...
}
Quoted 8 lines
Because the validation fails and returns
-EINVALafterdst->type,dst->matching, anddst->allowhave already been updated, the commit aborts midway. This leaves the active DAMON context's filter partially mutated, interpreting its previous union field (likememcg_id) as the new range bounds.Could validation be added to
damon_sysfs_set_filters()inmm/damon/sysfs.cto prevent invalid bounds from reaching the core commit logic?
No issue. damon_ctx->maybe_corrupted is there to avoid using such corrupted state.
Quoted 6 lines
Quoted 3 lines
mm/damon/sysfs.c +0
-0damon_add_filter (probe, filter); }Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=5
Thanks,
SJ
SJ Park
maintainerRFC PATCH v3 6/8 Docs/mm/damon/design: update for hugepage_size probe filter
In reply to SJ ParkUpdate DAMON design document for the newly added hugepage_size data attribute probe filter type.
--- Documentation/mm/damon/design.rst | 2 ++ 1 file changed, 2 insertions(+)
Documentation/mm/damon/design.rst +2 -0
@@ -300,6 +300,8 @@ filter types. Currently below filter types are supported. - ``pgidle_unset``: Matches if the page for the memory is marked as not access-idle. - ``pgidle_set``: Matches if the page for the memory is marked as access-idle. +- ``hugepage_size``: Matches if the page for the memory is a part of a hugepage + of a given size range. If such probes are registered, DAMON executes the probes for each region's sampling memory when it does the access :ref:`sampling
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 6/8] Docs/mm/damon/design: update for hugepage_size probe filter
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 4 lines
Update DAMON design document for the newly added
hugepage_sizedata attribute probe filter type.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=6
SJ Park
maintainerRFC PATCH v3 7/8 Docs/admin-guide/mm/damon/usage: update for hugepage_size
In reply to SJ ParkUpdate DAMON usage document for the newly added hugepage_size data attribute filter type.
--- Documentation/admin-guide/mm/damon/usage.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Documentation/admin-guide/mm/damon/usage.rst +3 -1
@@ -78,7 +78,7 @@ comma (","). │ │ │ │ │ │ │ │ │ 0/prep_action │ │ │ │ │ │ │ │ │ ... │ │ │ │ │ │ │ │ filters/nr_filters - │ │ │ │ │ │ │ │ │ 0/type,matching,allow,path + │ │ │ │ │ │ │ │ │ 0/type,matching,allow,path,min,max │ │ │ │ │ │ │ │ │ ... │ │ │ │ │ │ │ ... │ │ │ │ │ :ref:`targets <sysfs_targets>`/nr_targets
@@ -308,6 +308,8 @@ Writing a number (``N``) to the file creates the number of child directories named ``0`` to ``N-1``. Each directory represents each filter and works in a way similar to that for :ref:`DAMOS filter <sysfs_filters>`. When the filter ``type`` is ``memcg``, ``path`` file acts as ``memcg_path`` for :ref:`DAMOS +filter <sysfs_filters>`. When the filter ``type`` is ``hugepage_size``, +``min`` and ``max`` files acts as files of the same names for :ref:`DAMOS filter <sysfs_filters>`. .. _sysfs_targets:
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 7/8] Docs/admin-guide/mm/damon/usage: update for hugepage_size
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 4 lines
Update DAMON usage document for the newly added
hugepage_sizedata attribute filter type.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=7
SJ Park
maintainerRFC PATCH v3 8/8 Docs/ABI/damon: update for hugepage_size probe filter
In reply to SJ ParkFor the newly added hugepage_size data attribute probe filter, two new sysfs files are added for the size range. Update DAMON ABI document for the new files.
--- Documentation/ABI/testing/sysfs-kernel-mm-damon | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Documentation/ABI/testing/sysfs-kernel-mm-damon +14 -0
@@ -206,6 +206,20 @@ Description: If 'memcg' is written to the 'type' file, writing to and reading from this file sets and gets the path to the memory cgroup of the interest. +What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/probes/<P>/filters/<F>/min +Date: Sep 2026 +Contact: SJ Park <[email protected]> +Description: If 'hugepage_size' is written to the 'type' file, writing to and + reading from this file sets and gets the minimum size of the + huge page of the interest. + +What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/probes/<P>/filters/<F>/max +Date: Sep 2026 +Contact: SJ Park <[email protected]> +Description: If 'hugepage_size' is written to the 'type' file, writing to and + reading from this file sets and gets the maximum size of the + huge page of the interest. + What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/probes/<P>/filters/<F>/matching Date: May 2026 Contact: SJ Park <[email protected]>
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [RFC PATCH v3 8/8] Docs/ABI/damon: update for hugepage_size probe filter
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 5 lines
For the newly added
hugepage_sizedata attribute probe filter, two new sysfs files are added for the size range. Update DAMON ABI document for the new files.Signed-off-by SJ Park <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=8