SeongJae Park
675774adbe
selftests/damon/sysfs.py: merge DAMON status dumping into commitment assertion
...
For each test case, sysfs.py makes changes to DAMON, dumps DAMON internal
status and asserts the expectation is met. The dumping part should be the
same for all cases, so it is duplicated for each test case. Which means
it is easy to make mistakes. Actually a few of those duplicates are not
turning DAMON off in case of the dumping failure. It makes following
selftests that need to turn DAMON on fails with -EBUSY. Merge the status
dumping into commitment assertion with proper dumping failure handling, to
deduplicate and avoid the unnecessary following tests failures.
Link: https://lkml.kernel.org/r/20251112154114.66053-8-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Bill Wendling <morbo@google.com >
Cc: Brendan Higgins <brendan.higgins@linux.dev >
Cc: David Gow <davidgow@google.com >
Cc: David Hildenbrand <david@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Justin Stitt <justinstitt@google.com >
Cc: Liam Howlett <liam.howlett@oracle.com >
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Miguel Ojeda <ojeda@kernel.org >
Cc: Mike Rapoport <rppt@kernel.org >
Cc: Nathan Chancellor <nathan@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Suren Baghdasaryan <surenb@google.com >
Cc: Vlastimil Babka <vbabka@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-11-20 13:44:01 -08:00
SeongJae Park
53298afe45
mm/damon: rename damos->filters to damos->core_filters
...
DAMOS filters that are handled by the ops layer are linked to
damos->ops_filters. Owing to the ops_ prefix on the name, it is easy to
understand it is for ops layer handled filters. The other types of
filters, which are handled by the core layer, are linked to
damos->filters. Because of the name, it is easy to confuse the list is
there for not only core layer handled ones but all filters. Avoid such
confusions by renaming the field to core_filters.
Link: https://lkml.kernel.org/r/20251112154114.66053-3-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Bill Wendling <morbo@google.com >
Cc: Brendan Higgins <brendan.higgins@linux.dev >
Cc: David Gow <davidgow@google.com >
Cc: David Hildenbrand <david@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Justin Stitt <justinstitt@google.com >
Cc: Liam Howlett <liam.howlett@oracle.com >
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Miguel Ojeda <ojeda@kernel.org >
Cc: Mike Rapoport <rppt@kernel.org >
Cc: Nathan Chancellor <nathan@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Suren Baghdasaryan <surenb@google.com >
Cc: Vlastimil Babka <vbabka@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-11-20 13:44:01 -08:00
SeongJae Park
809ba69f9f
selftests/damon/sysfs: add obsolete_target test
...
A new DAMON sysfs file for pin-point target removal, namely
obsolete_target, has been added. Add a test for the functionality. It
starts DAMON with three monitoring target processes, mark one in the
middle as obsolete, commit it, and confirm the internal DAMON status is
updated to remove the target in the middle.
Link: https://lkml.kernel.org/r/20251023012535.69625-10-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Bijan Tabatabai <bijan311@gmail.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Liam Howlett <liam.howlett@oracle.com >
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Mike Rapoport <rppt@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Suren Baghdasaryan <surenb@google.com >
Cc: Vlastimil Babka <vbabka@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-11-16 17:28:25 -08:00
SeongJae Park
65a9033db7
sysfs.py: extend assert_ctx_committed() for monitoring targets
...
assert_ctx_committed() is not asserting monitoring targets commitment,
since all existing callers of the function assume no target changes.
Extend it for future usage.
Link: https://lkml.kernel.org/r/20251023012535.69625-9-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Bijan Tabatabai <bijan311@gmail.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Liam Howlett <liam.howlett@oracle.com >
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Mike Rapoport <rppt@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Suren Baghdasaryan <surenb@google.com >
Cc: Vlastimil Babka <vbabka@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-11-16 17:28:25 -08:00
SeongJae Park
da5973a0b8
selftests/damon/sysfs.py: test runtime reduction of DAMON parameters
...
sysfs.py is testing if non-default additional parameters can be committed.
Add a test case for further reducing the parameters to the default set.
Link: https://lkml.kernel.org/r/20250720171652.92309-23-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:21 -07:00
SeongJae Park
62b7b1ffa2
selftests/damon/sysfs.py: test non-default parameters runtime commit
...
sysfs.py is testing only the default and minimum DAMON parameters. Add
another test case for more non-default additional DAMON parameters
commitment on runtime.
Link: https://lkml.kernel.org/r/20250720171652.92309-22-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:21 -07:00
SeongJae Park
16797a55aa
selftests/damon/sysfs.py: generalize DAMON context commit assertion
...
DAMON context commitment assertion is hard-coded for a specific test case.
Split it out into a general version that can be reused for different test
cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-21-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:21 -07:00
SeongJae Park
a4027b5f24
selftests/damon/sysfs.py: generalize monitoring attributes commit assertion
...
DAMON monitoring attributes commitment assertion is hard-coded for a
specific test case. Split it out into a general version that can be
reused for different test cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-20-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:20 -07:00
SeongJae Park
771d7754ab
selftests/damon/sysfs.py: generalize DAMOS schemes commit assertion
...
DAMOS schemes commitment assertion is hard-coded for a specific test case.
Split it out into a general version that can be reused for different test
cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-19-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:20 -07:00
SeongJae Park
53f800581f
selftests/damon/sysfs.py: test DAMOS filters commitment
...
Current DAMOS scheme commitment assertion is not testing DAMOS filters.
Add the test.
Link: https://lkml.kernel.org/r/20250720171652.92309-18-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:20 -07:00
SeongJae Park
f22ff7b5a5
selftests/damon/sysfs.py: generalize DAMOS scheme commit assertion
...
DAMOS scheme commitment assertion is hard-coded for a specific test case.
Split it out into a general version that can be reused for different test
cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-17-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:20 -07:00
SeongJae Park
bd0487a774
selftests/damon/sysfs.py: test DAMOS destinations commitment
...
Current DAMOS commitment assertion is not testing quota destinations
commitment. Add the test.
Link: https://lkml.kernel.org/r/20250720171652.92309-16-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:20 -07:00
SeongJae Park
84dc442bd5
selftests/damon/sysfs.py: test quota goal commitment
...
Current DAMOS quota commitment assertion is not testing quota goal
commitment. Add the test.
Link: https://lkml.kernel.org/r/20250720171652.92309-15-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:19 -07:00
SeongJae Park
f797e709f7
selftests/damon/sysfs.py: generalize DamosQuota commit assertion
...
DamosQuota commitment assertion is hard-coded for a specific test case.
Split it out into a general version that can be reused for different test
cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-14-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:19 -07:00
SeongJae Park
b50c48de61
selftests/damon/sysfs.py: generalize DAMOS Watermarks commit assertion
...
DamosWatermarks commitment assertion is hard-coded for a specific test
case. Split it out into a general version that can be reused for
different test cases.
Link: https://lkml.kernel.org/r/20250720171652.92309-13-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:19 -07:00
SeongJae Park
cf20cb9ad1
selftests/damon/sysfs.py: stop DAMON for dumping failures
...
Commit 4ece018976 ("selftests/damon: add python and drgn-based DAMON
sysfs test") in mm-stable tree introduced sysfs.py that runs drgn for
dumping DAMON status. When the DAMON status dumping fails for reasons
including drgn uninstalled environment, the test fails without stopping
DAMON. Following DAMON selftests that assumes DAMON is not running when
they executed therefore fail. Catch dumping failures and stop DAMON for
that case.
Link: https://lkml.kernel.org/r/20250722060330.56068-1-sj@kernel.org
Fixes: 4ece018976 ("selftests/damon: add python and drgn-based DAMON sysfs test")
Signed-off-by: SeongJae Park <sj@kernel.org >
Reported-by: kernel test robot <oliver.sang@intel.com >
Closes: https://lore.kernel.org/oe-lkp/202507220707.9c5d6247-lkp@intel.com
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-26 15:08:16 -07:00
SeongJae Park
603cb4aa09
selftests/damon/sysfs.py: test DAMOS schemes parameters setup
...
Add DAMON sysfs interface functionality tests for basic DAMOS schemes
parameters setup.
Link: https://lkml.kernel.org/r/20250628160428.53115-7-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-13 16:38:21 -07:00
SeongJae Park
7e6bcf354f
selftests/damon/sysfs.py: test adaptive targets parameter
...
Add DAMON sysfs interface functionality tests for setup of basic adaptive
targets parameters.
Link: https://lkml.kernel.org/r/20250628160428.53115-6-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-13 16:38:20 -07:00
SeongJae Park
ae3ab07e0d
selftests/damon/sysfs.py: test monitoring attribute parameters
...
Add DAMON sysfs interface functionality tests for DAMON monitoring
attribute parameters, including intervals, intervals tuning goals, and
min/max number of regions.
Link: https://lkml.kernel.org/r/20250628160428.53115-5-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-13 16:38:20 -07:00
SeongJae Park
4ece018976
selftests/damon: add python and drgn-based DAMON sysfs test
...
Add a python-written DAMON sysfs functionality selftest. It sets DAMON
parameters using Python module _damon_sysfs, reads updated kernel internal
DAMON status and parameters using a 'drgn' script, namely
drgn_dump_damon_status.py, and compare if the resulted DAMON internal
status is as expected. The test is very minimum at the moment.
Link: https://lkml.kernel.org/r/20250628160428.53115-4-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-07-13 16:38:20 -07:00