Skip to content

mm/damon: add sysfs dirs for managing DAMOS filters based on handling layers

SeongJae Park damon linux-doc linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8mm/damon/sysfs-schemes: let damon_sysfs_scheme_set_filters() be used for different named directoriesmm/damon/sysfs-schemes.c+7 -40 replies
2/8mm/damon/sysfs-schemes: implement core_filters and ops_filters directoriesmm/damon/sysfs-schemes.c+38 -20 replies
3/8mm/damon/sysfs-schemes: commit filters in {core,ops}_filters directoriesmm/damon/sysfs-schemes.c+11 -30 replies
4/8mm/damon/core: expose damos_filter_for_ops() to DAMON kernel API callersinclude/linux/damon.h mm/damon/core.c+9 -10 replies
5/8mm/damon/sysfs-schemes: set filters handling layer of directoriesmm/damon/sysfs-schemes.c+36 -100 replies
6/8mm/damon/sysfs-schemes: return error for wrong filter type on given directorymm/damon/sysfs-schemes.c+20 -00 replies
7/8Docs/ABI/damon: document {core,ops}_filters directoriesDocumentation/ABI/testing/sysfs-kernel-mm-damon+16 -00 replies
8/8Docs/admin-guide/mm/damon/usage: update for {core,ops}_filters directoriesDocumentation/admin-guide/mm/damon/usage.rst+22 -91 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/8] mm/damon: add sysfs dirs for managing DAMOS filters based on handling layers

DAMOS filters are categorized into two groups based on their handling layers, namely core and operations layers. The categorization affects when each filter is evaluated. Core layer handled filters are evaluated first. The order meant nothing before, but introduction of allow filters changed that.

DAMOS sysfs interface provides single directory for filters, namely 'filters'. Users can install any filters in any order there. DAMON will internally categorize those into core and operations layer handled ones, and apply the evaluation order rule. The ordering rule is clearly documented. But the interface could still confuse users since it is allowed to install filters on the directory in mixed ways.

Add two sysfs directories for managing filters by handling layer, namely 'core_filters' and 'ops_filters' for filters that handled by core and operations layer, respectively. Those are avoided to be used for installing filters that not handled by the assumed layer.

For backward compatibility, keep 'filters' directory with its curernt behavior. Filters installed in the directory will be added to DAMON after those of 'core_filters' and 'ops_filters' directories, with the automatic categorizations. Also recommend users to use the new directories, and noticee 'filters' directory could be deprecated in future.

Note that new directories provide all features that were provided with 'filters', but just in a more clear way. Deprecating 'filters' is not expected to make an irreversal breakge.

Also note that this patch series depend on filters default behavior change patch series[1].

[1] https://lore.kernel.org/[email protected]

SeongJae Park (8):
mm/damon/sysfs-schemes: let damon_sysfs_scheme_set_filters() be used
for different named directories
mm/damon/sysfs-schemes: implement core_filters and ops_filters
directories
mm/damon/sysfs-schemes: commit filters in {core,ops}_filters
directories
mm/damon/core: expose damos_filter_for_ops() to DAMON kernel API
callers
mm/damon/sysfs-schemes: set filters handling layer of directories mm/damon/sysfs-schemes: return error for wrong filter type on given
directory
Docs/ABI/damon: document {core,ops}_filters directories Docs/admin-guide/mm/damon/usage: update for {core,ops}_filters
directories

 .../ABI/testing/sysfs-kernel-mm-damon         |  16 +++
 Documentation/admin-guide/mm/damon/usage.rst  |  31 +++--
 include/linux/damon.h                         |   1 +
 mm/damon/core.c                               |   9 +-
 mm/damon/sysfs-schemes.c                      | 119 ++++++++++++++++--
 5 files changed, 153 insertions(+), 23 deletions(-)

base-commit: c6ff92c642d665270c718aece87bc33d264d2c00

Signature · 1 line
2.39.5