aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
4 daysUpdate the versionHEADv2.3.4nextmasterSeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
4 daysRevert "Move source files under 'src/' directory"SeongJae Park42-4/+2
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>
5 daysRevert "Update the version"SeongJae Park1-1/+1
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>
5 daysUpdate the versionSeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
11 daysREADME: WordsmithSeongJae Park1-1/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
11 daysREADME: Add snapshot exampleSeongJae Park2-1/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysrelease_note: Update for next releaseSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysFEATURES_DEPRECATION_SCHEDULE: Document --damon_interface deprecationSeongJae Park1-0/+16
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysMove source files under 'src/' directorySeongJae Park42-2/+4
There are too many py files on the root. Move to 'src/' directory. Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysUSAGE: Document 'base_time_absolute' field of 'damo report raw' outputSeongJae Park1-9/+9
Closes: https://github.com/awslabs/damo/issues/89 Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysrelease_note: Update for next releaseSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysDeduplicate community reporting processSeongJae Park4-7/+8
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysREADME: Split out features deprecation schedule to a fileSeongJae Park2-64/+69
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysREADME: Wordsmith undocumented features FAQSeongJae Park1-8/+10
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysTODO: Update for completed itemsSeongJae Park1-1/+0
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysdamo_record: Do memory footprint recording by defaultSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
12 daysdamo_record: Do profile by defaultSeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-29Update the versionv2.3.3SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28release note: UpdateSeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28tests/report/test: Use realpath for expect/result filesSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28tests/report/expects/report-wss*: Update for changed report wss behaviorSeongJae Park2-2/+2
Changed default behavior (--collapse_taregts) of 'report wss' makes the tests fail. Update the expectations. Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28TODO: UpdateSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28damo_record: Do '--include_child_tasks' by defaultSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-28damo_wss: Do '--collapse_targets' by defaultSeongJae Park1-0/+3
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>
2024-04-27TODO: Remove quota goals testing todo itemSeongJae Park1-1/+0
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>
2024-04-27_damon_args: Wordsmith --damos_quota_goal help messageSeongJae Park1-2/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damon: Use variables for quota goal metricsSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damon/DamosQuotaGoal: Check if metric is validSeongJae Park1-0/+6
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records: Rename poll_add_child_tasks to add_child_tasksSeongJae Park2-5/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records: Rename poll_add_mem_footprint to record_mem_footprintSeongJae Park2-3/+3
Memory footprint recording is no more coupled with polling. Rename the parameter. Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27TODO: Cleanup completed itemsSeongJae Park1-2/+0
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27TODO/release_note: UpdateSeongJae Park2-2/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27damo_record: Support ongoing recording with --footprintSeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27TODO/release_note: UpdateSeongJae Park2-1/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records/poll_target_pids(): Receive required parameters onlySeongJae Park1-5/+6
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records/__poll_target_pids(): Pass only required parametersSeongJae Park1-4/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records/start_recording(): Collapse unnecessarily split branchesSeongJae Park1-6/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records: Record memory footprint for paddr caseSeongJae Park1-1/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-27_damo_records: Separate memory fooprint recording from poll_target_pids()SeongJae Park1-4/+4
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-26USAGE: Remove table of contents sectionSeongJae Park1-26/+0
It is easy to be outdated, and modern markdown viewers provide it automatically. Remove it. Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-22Update the versionv2.3.2SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21relese_note: Update for next releaseSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21TODO: UpdateSeongJae Park1-5/+0
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21USAGE: Document 'sys_used' metric for 'report footprints'SeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21USAGE: Use list for 'report footprints' metricsSeongJae Park1-5/+7
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21damo_report_footprint: Support system-level used memory metric, sys_usedSeongJae Park1-1/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21damo_report_footprint: Calculate footprint in bytesSeongJae Park1-5/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21_damo_records: Save/load system memory footprintSeongJae Park2-2/+13
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21_damo_records: Implement SysMemFootprint.from_kvpairs()SeongJae Park1-0/+10
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21_damo_records: Implement SysMemFootprint classSeongJae Park1-0/+27
The class is for recording system level memory footprint. Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21_damo_records: Rename MemFootprint to ProcMemFootprintSeongJae Park1-4/+4
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-21_damo_records: Handle profile and memory footprint from finish_recording()SeongJae Park1-7/+6
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>
2024-04-20TODO: Add an itemSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-20TODO: UpdateSeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-20TODO: Add itemsSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-18_damo_fs: compare with s_subtype instead for mnt_devnameAlex Rusuf1-2/+2
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>
2024-04-16damo_wss: Add an option for collapsed target wssSeongJae Park1-2/+14
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-16_damon: Support human readable time string for goal target value for ↵SeongJae Park1-2/+4
some_mem_psi metric Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-15Update the versionSeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-15release_note: Update for next releaseSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-15TODO: UpdateSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-15_damo_records: Poll target processes if existSeongJae Park1-2/+10
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>
2024-04-15_damo_records: Handle a case where a process finished while collecting ↵SeongJae Park1-2/+6
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>
2024-04-15_damo_records: Fix wrong file path reference in start_recording()SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-15Update the versionv2.3.0SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14USAGE: Document footprints report typeSeongJae Park1-2/+41
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14release_note: Add itemSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14Implement 'damo report footprints'SeongJae Park2-0/+124
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>
2024-04-14_damo_records: Implement a function for loading memory footprints from a ↵SeongJae Park1-0/+5
record file Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Implement MemFootprintsSnapshot.from_kvpairs()SeongJae Park1-0/+10
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records/MemFootprintsSnapshot: Support constructor without argumentSeongJae Park1-1/+4
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records/MemFootprint(): Implement from_kvpairs()SeongJae Park1-0/+12
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records/MemFootprint: Support constructor without parameterSeongJae Park1-1/+4
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Remove pipe arguments from RecordingHandle constructorSeongJae Park2-6/+4
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Remove unused function, wait_recording()SeongJae Park1-6/+0
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>
2024-04-14_damo_records(): Rename start_recording_v2() to start_recording()SeongJae Park2-2/+2
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Remove unused function start_recording()SeongJae Park1-23/+0
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14damo_record: Use start_recording_v2()SeongJae Park2-7/+13
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Add a new version of start_recording()SeongJae Park1-0/+12
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>
2024-04-14_damo_records: Add tracepoint and do_profile members to RecordingHandleSeongJae Park1-5/+13
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14tests/record/test: Add timeout to permission testSeongJae Park1-1/+2
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>
2024-04-14_damo_records: Add comment for RecordingHandleSeongJae Park1-1/+5
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14damo_record: Use _damo_records.wait_recording()SeongJae Park1-6/+1
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records: Implement a function for wait recordingSeongJae Park1-0/+6
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14_damo_records.poll_target_pids(): Return False if there's no real thing to doSeongJae Park1-0/+3
__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>
2024-04-14TODO: Further updateSeongJae Park1-12/+13
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14TODO: Remove completed itemsSeongJae Park1-1/+0
Signed-off-by: SeongJae Park <sj@kernel.org>
2024-04-14damo_tune: Remove own arguments double checkSeongJae Park1-32/+0
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>
2024-04-14_damon_args: Check if arguments are correct from kdamonds_for()SeongJae Park1-0/+30
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>
2024-04-11damo_tune: Ensure reset interval is specified for quota-goalsMithun Veluri1-9/+24
While tuning, if user provides 'damos_quota_goal' and not 'reset_interval_ms', throw an error. Signed-off-by: Mithun Veluri <velurimithun38@gmail.com>
2024-04-09damo_tune: Evaluate args before committing kdamondsMithun Veluri1-0/+17
- 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>
2024-04-08Update the versionv2.2.9SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-07release_note: Update for the next releaseSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06damo_record: Set kdamonds as None for ongoing record caseSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06TODO: Add itemsSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records/finish_recording(): Handle memory footrpint while profile is noneSeongJae Park1-9/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records: Update out-dated start_recording() commentSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records: Cleanup comments and layoutSeongJae Park1-7/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06damo_record: Remove unnecessary memory footprint snapshot in cleanup dataSeongJae Park1-4/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records: Handle memory footprint recording in the handleSeongJae Park2-14/+21
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records: Move poll request inside RecordHandleSeongJae Park2-8/+19
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06_damo_records/start_recording: Remove default parameter valuesSeongJae Park1-2/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06damo_record: Move target pids polling to _damo_recordsSeongJae Park2-59/+59
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06damo_record: Move memory footprints saving to _damo_recordsSeongJae Park2-8/+8
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06damo_record: Move memory footprint recording to _damo_recordsSeongJae Park2-75/+80
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-04-06Rename _damon_records to _damo_recordsSeongJae Park16-68/+68
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>
2024-04-01Update the versionv2.2.8SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Backup old mem_footprint filesSeongJae Park1-0/+5
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31TODO: UpdateSeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Fix --footprint help messageSeongJae Park1-1/+1
The option records not only VSZ and RSS. Fix it. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31release_note: Update for next releaseSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31USAGE: Document --footprint option of 'damo record'SeongJae Park1-0/+19
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Add the comment for MemFootprint fields' meaningSeongJae Park1-2/+19
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Move memory footprint saving into signal handlerSeongJae Park1-10/+16
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Use MemFootprint classSeongJae Park1-7/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Implement to_kvapirs() of MemFootprintSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Implement a class for memory footprintSeongJae Park1-0/+22
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Put MemFootprintsSnapshot just before userSeongJae Park1-16/+16
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Respect args.output_permission for memory footprint fileSeongJae Park1-2/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Add option for memory footprint recordingSeongJae Park1-0/+23
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>
2024-03-31damo_record: Implement a method for converting MemFootprintsSnapshot to a dictSeongJae Park1-0/+6
The method would be used for saving it in a file. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-31damo_record: Implement a class for memory foontprints recordingSeongJae Park1-0/+10
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>
2024-03-31tests/start_stop: Set nr_accesses boundaries for tune-record-ongoing-validateMithun Veluri1-1/+1
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>
2024-03-25Update the versionv2.2.7SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-25release_note: UpdateSeongJae Park1-0/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-24damo_show: Put new line between box and next line if max box height is 1SeongJae Park1-1/+4
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>
2024-03-24USAGE: Update debugfs prerequisites sectionSeongJae Park1-2/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-24USAGE: Simply Table of ContentsSeongJae Park1-14/+0
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>
2024-03-23damo_show: Rename RegionBoxValArgs to RegionBoxAttrSeongJae Park1-4/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-23damo_show: Rename RegionBoxArgs to RegionBoxSeongJae Park1-2/+2
The name is unclearly explains what it is. Just call it RegionBox. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-23damo_show: Add an option for right-aligned region boxSeongJae Park1-5/+18
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>
2024-03-18Update the versionv2.2.6SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17release_note: UpdateSeongJae Park1-0/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damo_fs: Remove write_files()SeongJae Park1-57/+0
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>
2024-03-17_damon_dbgfs: Put callees closer to callersSeongJae Park1-15/+15
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_dbgfs: Remove wops_for_*()SeongJae Park1-54/+0
wops_for_*() functions are not really being used. Remove those. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17tests/unit/test_damon_dbgfs: Remove 'test_files_content_to_kdamonds()'SeongJae Park1-52/+0
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>
2024-03-17tests/unit/test_damon_dbgfs: Implement a test for write_kdamonds()SeongJae Park1-0/+55
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_dbgfs: Use interactive kdamonds writer from stage_kdamonds()SeongJae Park1-5/+1
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>
2024-03-17_damon_dbgfs: Implement an interactive version of kdamonds writerSeongJae Park1-0/+26
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_dbgfs: Implement an interactive version for target writingSeongJae Park1-0/+27
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_dbgfs: Implement interactive scheme writing functionSeongJae Park1-0/+11
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_dbgfs: Use _damo_fs.write_file() for single file i/oSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon_sysfs: Remove wops_for_* functionsSeongJae Park1-156/+0
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>
2024-03-17tests/unit/test_damon_sysfs: Remove test_json_kdamonds_convert()SeongJae Park1-133/+0
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>
2024-03-17tests/unit/test_damon_sysfs: Test staging io using dryrun mode of _damo_fsSeongJae Park1-0/+123
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damo_fs: Support dryrunSeongJae Park1-5/+26
Add dryrun mode from _damo_fs, for debugging and testing purpose. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damon: Use _damo_fs.debug_print_ops() insted of a global variableSeongJae Park2-8/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17_damo_fs: Support debugging-purpose ops printing on its ownSeongJae Park1-2/+8
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-17TODO: Remove done itemSeongJae Park1-1/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-16README: Put major features introductions into one sectionSeongJae Park1-4/+11
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-16TODO: Remove completed itemsSeongJae Park1-2/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-11Update the versionv2.2.5SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-11release_note: Update for next releaseSeongJae Park1-0/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-11_damon_sysfs/update_supported_features(): Remove unnecessary DamonCtx ↵SeongJae Park1-3/+0
constructor arguments Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-11_damon_sysfs/infer_damon_version(): Remove unnecessary DamonCtx constructor ↵SeongJae Park1-3/+0
arguments Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-11_damon/DamonCtx: Support default values for constructor argumentsSeongJae Park1-5/+8
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-10_damon_sysfs/infer_damon_version(): Restore original kdamonds before returningSeongJae Park1-0/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs/infer_damon_version(): Remove unnecessary arguments for Damos ↵SeongJae Park1-3/+0
constructor Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs/update_supported_features(): Remove unnecessary arugmentsSeongJae Park1-5/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09damo_features: Add an option for inferring DAMON versionSeongJae Park1-0/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Impelment DAMON version inference functionSeongJae Park1-0/+47
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Remove unused function, __ensure_scheme_dir_populated()SeongJae Park1-22/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Remove unused function, __ensure_target_dir_populated()SeongJae Park1-8/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Remove unused function, __ensure_kdamond_dir_populated()SeongJae Park1-35/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Drop 'fvaddr' from list of sysfs feature from beginningSeongJae Park1-1/+1
'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>
2024-03-09_damon_sysfs/update_supported_features(): Fix wrong goal metric checkSeongJae Park1-5/+3
'target_metric' is in goal directory, but the code is checking goals directory. Fix it. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs/update_supported_features(): Remove quota goal from default ↵SeongJae Park1-6/+5
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>
2024-03-09_damon_sysfs: Support schemes_filters_young feature checkSeongJae Park1-0/+5
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs: Remvoe ensure_dirs_populated() and __ensure_dirs_populated()SeongJae Park1-17/+0
The functions are not used by anyone. Remove those. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_sysfs/update_supported_features(): Stage feature check purpose ↵SeongJae Park1-13/+20
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>
2024-03-09TODO: Add itemsSeongJae Park1-0/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon_args: Support 'young' type DAMOS filterSeongJae Park1-0/+5
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon: Support 'young' type DAMOS filterSeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon: Add DAMOS filter type young on the features listSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-09_damon: Update status of developing featuresSeongJae Park1-3/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-06tests: schemes: test.sh: Python version includedPiyush Thange1-1/+1
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>
2024-03-04Update the versionv2.2.4SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03release_note: UpdateSeongJae Park1-0/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03TODO: UpdateSeongJae Park1-9/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03USAGE: Add --sz_snapshot on 'damo report profile' exampleSeongJae Park1-3/+5
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03USAGE: Fix wrong example of 'damo report times'SeongJae Park1-1/+1
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Rename --snapshot_regions_sz to --sz_snapshotSeongJae Park1-4/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Add snapshot size filterSeongJae Park1-1/+13
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records/get_records(): Handle snapshot size filterSeongJae Park1-0/+7
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Implement snapshot size filtering functionSeongJae Park1-0/+11
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Add snapshot size filterSeongJae Park1-2/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Rename parse_sort_addr_ranges_input() for general bytes rangesSeongJae Park2-10/+10
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Remove unused function, args_to_filters()SeongJae Park1-13/+0
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records/RecordGetRequest: Remove unused fields, access_pattern and ↵SeongJae Park1-10/+3
address_ranges Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records/get_snapshot_record_of(): Stop using access_pattern and ↵SeongJae Park1-7/+1
address_ranges of request The two parameters are not really set now. Ignore those. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records/get_records(): Remove access pattern and address ranges argumentsSeongJae Park1-12/+3
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>
2024-03-03damo_report_times: Replace args_to_filters() with args_to_filter()SeongJae Park1-2/+2
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03damo_report_profile: Replace args_to_filters() with args_to_filter()SeongJae Park1-3/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03damo_show: Replace args_to_filters() with args_to_filter()SeongJae Park1-3/+3
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Implement another version of args_to_filters()SeongJae Park1-0/+13
Implement a new version that returns RecordFilter object. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Use RecordFilter objectSeongJae Park1-10/+40
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03damo_show: Provide field name to get_records()SeongJae Park1-3/+4
Now all get_records() users are providing field names. Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03_damon_records: Implement record filter classSeongJae Park1-0/+8
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2024-03-03damo_report_times: Reuse damon_records.args_to_filters()SeongJae Park1-11/+4
Signed-off-by: SeongJae Park <sj38.park@gmail.com>