Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
This reverts commit 3f81ae92e3f9bbff437d09bede73c75527dfe99b.
The commit causes packaging/build.sh failure. It can be fixed, but may
better to have more testing. Revert it for now for upcoming release.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
This reverts commit 5f801564a15bfc5bfdf68f284d8be870d6b3291a.
Maybe due to the source files moving to src/, building failed. Revert
the commit for now.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
There are too many py files on the root. Move to 'src/' directory.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Closes: https://github.com/awslabs/damo/issues/89
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Changed default behavior (--collapse_taregts) of 'report wss' makes the
tests fail. Update the expectations.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
In many cases, users would do '--collapse_targets' first, and then look
into separate target's woking set size if needed. Let the behavior with
the option as default, and add an option for per-target reporting,
'--per_target'. Keep '--collapse_targets' for cases where users simply
following the examples that already presented at OSSNA 24.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
As also noted on the item, such core DAMON features would better to be
tested on in-tree kernel test. We implemented such selftest on
damon/next. Remove the item from TODO list.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Memory footprint recording is no more coupled with polling. Rename the
parameter.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
It is easy to be outdated, and modern markdown viewers provide it
automatically. Remove it.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
The class is for recording system level memory footprint.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
When handle.file_format == file_type_perf_data, finish_recording()
doesn't care profile and memory footprint recording. Handle the case.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
In case of "sysfs" its mnt_devname == "sys", so
trying to search for it with "sysfs" there's no way
for success.
Signed-off-by: Alex Rusuf <yorha.op@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
some_mem_psi metric
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
If 'damo record' is started with target command, the target process is
the child of 'damo', so becomes zombie process when it is finished.
Then because zombie process is still a valid process from DAMON's
perspective, kdamond is not terminated, and 'damo' hangs. Do the pid
polling if any target process exists.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
memory footprint
The target process could be terminated while collecting memory
footprint. Handle the case by treating the process as just not using
memory anymore.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Implement yet another report type of 'damo report', which is for total
memory footprint of a record.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
record file
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Now start_recording() does not return until the recording is finished.
So no user is using wait_recording(). Remove it.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Currently wait_recording() is not only waiting, but also doing memory
footprint recording. Let's make the user to create the handle with
requests part on their own, and start_recording() does all the real
works including waiting for completion. As the first step of the work,
implement a new version of start_recording() function.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
test_record_permission() can make the test unfinished because the
workload to record finishes too fast. Increase the time for the
workload and add timeout.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
__poll_target_pids() is for both adding child processes to targets and
checking if the target processes are terminated. However, the target
processes termination check is done by waiting for kdamonds termination.
Skip unnecessary work if not requested.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
The arguments check is now being done by _damon_args.kdamonds_for().
'damo tune' is also using the function, so no need to do the check in
'damo tune'. Remove the duplicated check.
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
Wrong arguments input that recently fixed for 'damo tune' via last two
commits can again be problematic on other commands such as 'damo start'.
Do the check from _damon_args.kdamonds_for().
Signed-off-by: SeongJae Park <sj@kernel.org>
|
|
While tuning, if user provides 'damos_quota_goal' and not
'reset_interval_ms', throw an error.
Signed-off-by: Mithun Veluri <velurimithun38@gmail.com>
|
|
- Check if user has provided any 'damos_action'. Without 'damos_action'
tune will ignore damos_quotas and damos_quota_goal.
- Throws error messages if no 'damos_action' is specified in tune cmd.
Signed-off-by: Mithun Veluri <velurimithun38@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
damo now supports not only DAMON records but also profile and memory
footprint records. _damon_records is handling DAMON records and profile
records. Memory footprint records is handled by damo_record.py, but
would better to move that to _damon_records. Rename _damon_records to
_damo_records for that.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The option records not only VSZ and RSS. Fix it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Add an option --footprint for memory footprint recording. If the option
is given, 'damo record' records 'statm' content of all target processes
in a json file (name is same to the damon reocrd, but has
'.mem_footprint' suffix.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The method would be used for saving it in a file.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Implement a class for extending 'damo record' to further record memory
footprints. At the moment, it uses '/proc/<pid>/statm' files.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Damo is tuned for 200ms aggr interval in this test and default max
nr_accesses limit is 24. So, mention nr_accesses limits as options in validate cmd to
avoid failure in tests.
Signed-off-by: Mithun Veluri <velurimithun38@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Boxes add one new line at the end to give bornder between boxes. But
the new line is skipped if the max height is 1. Hence, when max height
of box is 1 and there is something following the box on the format
string, outputs after box comes on same line. Fix it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
GitHub supports Table of Contents. Having it on the doc would still be
helpful for users who not familiar with GitHub interface, or users who
not using GitHub. Nonetheless, current table seems too verbose. Remove
some.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The name is unclearly explains what it is. Just call it RegionBox.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
For an analogy of the snapshot where time goes from left to right,
right-aligned region box is easier to understand. Add an option for
supporting the display.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
write_files() was designed for handling multiple file i/o operations
that supposed to all success. It is convenient and useful, but makes it
complicated to handle failures in the middle of the operations. Now all
_damo_fs users are using write_file() instead. Remove the function that
not really being used.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
wops_for_*() functions are not really being used. Remove those.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The function is testing wops_for_kdamonds(), which is not really used
anymore. Test for replacement of wops_for_kdamonds(), anmely
write_kdamonds(), has also added. Remove the unnecessary test.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
wops_for_*() functions are easier to test, but hard to debug where it
fails, and difficult to deal with partial failures of i/o. Use
interactive version instead.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The functions are not really used now, but only remained there for unit
test. The test is replaced to a new version using the new function that
really being used. Remove the old functions.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The test is testing _damon_sysfs.wops_for_kdamonds(), which is not
really being used. Similar functionality of real use is done by
test_json_kdamonds_staging() test. Remove the unnecessary one.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Add dryrun mode from _damo_fs, for debugging and testing purpose.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
constructor arguments
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
arguments
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
constructor
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
'fvaddr' DMAON operations set was introduced from v5.19, while DAMON
sysfs intrface was introduced from v5.18. However 'fvaddr' is in
'features_sysfs_support_from_begining' list by a mistake. Drop it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
'target_metric' is in goal directory, but the code is checking goals
directory. Fix it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
feature check kdamonds
Staging feature check kdamonds fail due to goals, which is not supported
on old kernels. Don't create it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
The functions are not used by anyone. Remove those.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
kdamonds always
The code tries to not install kdamonds for feature check if possible.
But that's not a big deal, and can make code simpler. Just do it.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
While running `sudo ./test/run.sh` encountered the error due to python version.
Following was the error.
```
./schemes/test.sh: line 27: python: command not found
could not turn on damon (writing on to /sys/kernel/mm/damon/admin/kdamonds/0/state
failed ([Errno 22] Invalid argument))
./schemes/test.sh: line 45: test_stat_applied / (SECONDS - start_time): division
by 0 (error token is "(SECONDS - start_time)")
```
Signed-off-by: Piyush Thange <pthange19@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
address_ranges
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
address_ranges of request
The two parameters are not really set now. Ignore those.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Nobody is using the two arguments now. All users are using RecordFilter
instead. Remove the unused arguments.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Implement a new version that returns RecordFilter object.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Now all get_records() users are providing field names.
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|
|
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
|