blob: d0b56b990a767a6c2b2e897e05b09deb5a3fe819 [file] [log] [blame]
This file records important changes that made in each release. Those are
picked by human sense, so could be incomplete and missing many things.
v3.1.1
- Refactor DAMON features management.
v3.1.0
- damo report sysinfo: Support available DAMON modules listing.
- Fix 5.15 kernel 'damo report access' breakage for None age.
- Add more unit tests for trace output parsing.
v3.0.9
- Support 'perf' unavailable systems.
- Require 'trace-cmd' instead, for 'damo record'.
v3.0.8
- Add --sample_primitives option.
v3.0.7
- sysinfo: Support perf information.
- sysinfo: Support <5.15 DAMON version inference.
- Support 'damon sample control' feature.
v3.0.6
- damo report damon: Support yaml format with --format option.
- Provide wrong memcg DAMOS filter error detail.
- sysinfo: use git-based damo version if available.
- Support nr_stats and max_nr_stats
(https://lore.kernel.org/20251123184329.85287-1-sj@kernel.org).
v3.0.5
- Fix a bug in 'damo report heatmap --interactive_edit'.
- damo record: Support taking snapshots from DAMON_STAT.
- Improve --include_child_tasks monitoring results inheritance on kernels not
supporting obsolete targets feature.
- Cleanup damon feature check code.
v3.0.4
- Fix debugfs interface support bug that was introduced by v3.0.3.
- damo report sysinfo: Support trace features.
- More feature/sysinfo check cleanups.
v3.0.3
- damo report access: Add 'cold-memory-tail' and 'idle-memory-percentiles'
--style option.
- Implement 'damo report sysinfo'.
- Refactor DAMON features check system.
v3.0.2
- Improve monitoring results inheritance for --include_child_tasks use case, on
kernels supporting obsolete_target feature.
- Introduce --obsolete_targets option for online DAMON parameter commit
commands.
- Fix DAMON features check for allow_filter and hugepage_size.
v3.0.1
- Update damo record test be more time-error tolerant.
- Add node_memcg_{used,free}bp DAMOS quota goal feature check.
- Support obsolete_target sysfs file support.
v3.0.0
- Save record output per user-specified time interval (--output_flush_sec, one
hour by default).
- Add record filter options to 'damo adjust' for splitting too huge record
files into multiple files.
- Support node_memcg_{used,free}_bp DAMOS quota goal
(https://lore.kernel.org/20251009212042.60084-1-sj@kernel.org)
v2.9.9
- Fix lost targets bug on _damon.add_childs_target().
- Clarify target regions inheritance behavior.
- Support retrieving DAMON records from DAMON_STAT.
v2.9.8
- Fixup 'damo report holistic' breakage.
- Avoid unnecessary DAMOS tried regions update in 'damo report damon --json'.
- Add '--omit_damos_tried_regions' to 'damo report damon'.
- Preparation of DAMON_STAT support on 'damo record' and 'damo report access'.
v2.9.7
- DAMOS arguments parsing cleanup.
- Errors out on invalid number of --damos_action arguments.
v2.9.6
- Prepare DAMON_STAT integration into DAMON records.
v2.9.5
- Accelerate --include_child_tasks to be recursive
v2.9.4
- damo module stat: support transforming partial idle time percentiles to idle
time-memory size visualization (--input_idle_time_percentiles).
v2.9.3
- Support per-threads monitoring of damon/next kernel
- Support idle time to memory size visualization for DAMON_STAT
v2.9.2
- Add idle time to memory size visualization as a 'damo report access --exec'
example script (report_access_exec_scripts/idle_time_mem_sz.py).
v2.9.1
- Add experimental support of write-only and cpus group-only monitoring.
- damo args damon: format DAMOS apply interval in human-friendly way.
v2.9.0
- Support multiple DAMOS (migration) action destinations.
- Add example scripts for memory tiering and LRU lists sorting under scripts/.
v2.8.9
- Show access frequency in hertz by default.
- Support automatic and faster DAMON status read (--refresh_stat).
v2.8.8
- Improve handling of access records that made with intervals auto-tuning
v2.8.7
- damo report heatmap: Support interactive zoom and scroll (--interactive_edit)
- Support DAMOS_QUOTA_INACTIVE_MEM_BP
v2.8.6
- damo report heatmap: Support base value for --address_range and --time_range
- support active_mem_bp DAMOS quota goal metric
v2.8.5
- damo report heatmap: support sorting regions on space by access temperature
(--sort_temperature to use the feature, --temperature_weights for custom
temperature calculation)
- damo report access: improve handling records made with auto-tuned intervals
- use inferred interval for percentiles, histogram, and memory bw
v2.8.4
- Support local-repo usage on distros having symlink dir in os.sys.path.
- Advance 'damo report heatmap' for modern DAMON features.
- Display unknown heat pixels as transparent.
- gnuplot output: Use fixed color range.
- Fix snapshot an age accounting bug.
- Support human friendly --{time,address}_range.
- Support DAMOS filters-passed memory heatmap.
- report heatmap,access: Support multiple input record files
- report access: Show monitoring intervals regardless of intervals auto-tuning.
v2.8.3
- Support 'damo report heatmap' for snapshot records.
- Support 'damo report heatmap' for multi records with different intervals.
- fix --numa_nodes bug (commit c42f8ec54dcb).
v2.8.2
- refactor damo_report_access and add more tests for that
- damo start: add --include_child_tasks options for virtual address space.
v2.8.1
- damo report access: support <temperature percentiles> snapshot keyword.
- damo report access: extend --style for 'temperature percentiles'.
- add damo command 'module', for controlling all DAMON kernel modules.
v2.8.0
- damo report access: extend --style for 'recency percentiles'
v2.7.9
- fix wrong hugepage_size handling from 'damo report access --input' case
- add '<recency percentiles>' and '<df-passed recency percentiles>' snapshot
format keywords
v2.7.8
- damo report access: keep auto-tuned intervals
- damo report access: show auto-tuned intervals by default
- damo report access: extend --format for appending info on current output
v2.7.7
- damo report access: allow visualizing given access information with arbitrary
Python code (--exec)
v2.7.6
- damo help: add topics for DAMON record filtering and formatting
- damo report access: add option for manual histogram ranges setup
(--hist_ranges)
- USAGE.md updates for 'damo help' and multiple contexts support
v2.7.5
- Let partial DAMON parameters command line option supports multiple kdamonds,
multiple contexts, multiple monitoring targets
- Use '--nr_schemes', '--nr_targets' and '--nr_ctxs'
v2.7.3
- Support 'active' page filter
- Introduce 'damo help' for detaield help messages for given topics
- Currently command line options for DAMON parameters are supported
- Remove '--damos_filter_out'
v2.7.2
- Clarify available DAMON parameters keywords
- List available --damos_action parameters on help message
- Remove 'damo report raw' support
- Add '--draw_range' option to 'damo report heatmap'
v2.7.1
- 'damo report access': support logscale histograms via --hist_logscale
- 'damo report access': add '<damos stats>' snapshot format keyword
v2.7.0
- remove 'damo report heats', 'damo show', and 'damo status' as notified
- 'damo report access': show moitoring intervals tuning status if auto-tuning
is enabled
v2.6.9
- add pa_layout subcommand (experimental)
- support running DAMON for multiple NUMA nodes with --numa_node option
- add '<intervals tuning status>' snapshot format keyword
- add '<format strings>' record format keyword
v2.6.8
- damo report access
- add '<filters passed estimated memory bandwidth>' snapshot format keyword
(show it by default)
- add --repeat option
- support static length snapshot heatmap (--snapshot_heatmap_static)
- add 'hot' and 'cold' --style arguments
v2.6.7
- Support monitoring intervals auto-tuning goal ('--monitoring_intervals_goal')
- damo report access: add '<estimated memory bandwidth>' snapshot format keyword
- show it by default
- Visualize DAMOS filters passed regions heatmap
- Warn allow filters usage without reject filters after that
- Add '--omit_defaults' option to 'damo args damon'
- Omit non-parameters from 'damo args damon' outputs
v2.6.6
- Improve multiple kdamonds parameters edit
- damo args damon: add '--out' and '--replace' option
- update documentation
- Deprecate 'damo report heats', 'damo show' and 'damo status'
- Add experimental option, 'damo report damon --damon_params_omit_defaults'
v2.6.5
- damo report access: add '<positive access samples ratio>' snapshot format keyword
- damo report access: add '<filters passed bytes>' snapshot format keyword
- damo report access: Show <filters passed bytes> on snapshot tail by default
- Code cleanup
v2.6.4
- Allow more human-friendly DAMOS filter format, v2
- <allow|reject> [none] <type> [<additional type argument>...]
- e.g., 'damo report access --snapshot_damos_filter allow none anon reject memcg a/b/c'
- Code cleanup
v2.6.3
- Remove 'damo fmt_json'
- Rename --damos_filter for snapshot commands to --snapshot_damos_filter
- Support --snapshot_damos_filter from 'damo record' for snapshot case
- Support general snapshot filters from 'damo record' for snapshot case
- Add a single option to specify what to record ('damo record --do_record')
- Remove experimental --no_{vmas,mem_footprint,profile} in favor of the new
option
v2.6.2
- Support DAMOS pass filter
(https://lore.kernel.org/20241227210819.63776-1-sj@kernel.org)
- Document --damos_filter option format
- Support per-region filter-passed memory histogram visualization
- Support per-region filter-passed bytes visualization on record
v2.6.1
- Support page level properties based access monitoring
(https://lore.kernel.org/all/20241219040327.61902-1-sj@kernel.org/)
- 'damo report damon': provide per-scheme, per-region page level filters passed bytes
- 'damo report access': show the per-region information by default, when available
- support '--damos_filter' for snapshot use case
(e.g., damo report access --damos_filter anon matching)
- show the per-region data when '--tried_regions_of' is given
v2.6.0
- Support filtering records via snapshot index (damo report access --snapshot_idx)
v2.5.9
- damo report access: Add heatmap by default even if there is only single snapshot.
- Wordsmith and clarify concepts on documents.
v2.5.8
- Fix snapshot heatmap temperature calculation bug
- damo report access: Show snapshot heatmap by default
- deprecate 'damo fmt_json'
v2.5.7
- Remove end address from default region format of 'damo report access'
- Add temperature based region filter (--temperature of multiple report commands)
- Add '<temperature>' region format keyword for 'damo report access'
v2.5.6
- Reduce a corner case to use stale cached kernel feature check results
- Implement '<heatmap>' snapshot visualization format
(damo report access --format_snapshot_head <heatmap>)
- Support multiple kdamonds parameters edit (experimental)
(--add and --remove of 'damo args damon')
- Support human-readable DAMON parameters view (experimental)
('damo args damon --format report')
v2.5.5
- Minimize unnecessary I/O for kernel features check
v2.5.4
- Implement recency to total size of regions histogram visualization
(damo report access --style recency-sz-hist)
- Implement temperature to total size of regions histogram visualization
(damo report access --style temperature-sz-hist)
- Clarify 'damo' support scope on README.md
v2.5.3
- Implement 'damo report raw' alternative as 'damo report access --raw_form'
- Mark 'damo report raw' as will be deprecated
- Use 'damon.data' as --input_file of 'damo report access' as a last resort
v2.5.2
- Add features deprecation process documentation
- Mark 'damo show', 'damo status' and 'damo report heats' as will be deprecated
- Update USAGE.md for alternatives of the will-be-deprecated features
v2.5.1
- 'damo report kdamonds': Support full feature of 'damo status'
- Rename 'damo report kdamonds' to 'damo report damon'
- Mark 'damo args' officially supported
- Update documents
v2.5.0
- 'damo record': Extend processes' CPU usage recording to general stats
- 'damo record': Record kdamonds
- 'damo report': Add 'kdamonds' report type
v2.4.9
- Add --timeout option to 'damo record'
- Add --show_cpu_usage to 'damo status'
v2.4.8
- Update awslabs URLs to damonitor URLs
(https://lore.kernel.org/20240813232158.83903-1-sj@kernel.org)
- Add a new report type, 'access'
- Work same to 'show' (some behaviors will be changed in future)
- Support --damos_filter_out option for DAMOS-control commands
v2.4.7
- Hide DAMON parameter options from help messages of commands except
'damo args damon'.
- Support snapshots recording (damo record --snapshot).
- 'damo show': Support json format formatting parameters.
- 'damo args': Support access formatting parameters
('damo args accesses_format').
- Hide detailed formatting parameter options from help message of 'damo show'.
v2.4.6
- Mark 'damo fmt_json' as will-be-deprecated.
v2.4.5
- 'damo record': Record CPU usages of kdamonds and target processes
- Update 'damo args --format=yaml` output
v2.4.4
- 'damo report heatmap': Select hottest region as default plot target region
- 'damo record': Record vmas by default
- Introduce 'damo args' command
- Supports formatting DAMON parameters in json and yaml formats
v2.4.3
- 'damo report': Shorten holistic output by default
- 'damo monitor': Support holistic report type
v2.4.2
- Support 'diagnose' subcommand
- Add hotspot functions on 'damo report holistic' output
- 'damo reclaim': Support online and auto tuning
v2.4.1
- Implement the first version of 'holistic' report type
- Document source files hierarchy on CONTRIBUTING file
- Simplify target regions part of 'damo fmt_json' output
- Cleanup code
v2.4.0
- Complete support of migrage_{hot,cold} DAMOS action
- target_nid support and schemes_migrate feature check is added
- Support 'all' metric for 'damo report footprints'
- Add unit test on pre-commit hooks
v2.3.9
- Support migrate_{hot,cold} DAMOS action
- Need taget_nid work for fully functioning
v2.3.8
- Support yaml format DAMON parameters
v2.3.7
- Cleanup code and documents
v2.3.6
- Support memory mapping recording (--vmas)
- Support custom temperature weights from 'damo show' (--temperature_weights)
- Add heatmap report type (damo report heatmap)
v2.3.5
- Add --style option of 'damo show'
- Add --damos_quotas_{time,space,interval,weights} options
- Add 'temperature' regions sorting key for 'damo show'
v2.3.4
- damo record: Set --profile and --footprint by default
- Cleanup documents and files
v2.3.3
- Support memory footprint recording for non-process and ongoing targets
- damo report wss: Do --collapse_targets by default
- damo record: Do --include_child_tasks by default
v2.3.2
- Support system memory footprints recording/reporting
v2.3.1
- Hotfix release for bugs that intorudced with v2.3.0
v2.3.0
- Implement 'damo report footprints'
v2.2.9
- Cleanup code
v2.2.8
- Support recording memory usage of monitoring target process
v2.2.7
- Support region box right-side aligning (--region_box_align) of 'damo show'
- Cleanup code
v2.2.6
- Cleanup code
v2.2.5
- Support damon/next tree feature, the DAMOS filter type for young pages
- Implement '--infer_version' of 'damo feature'
v2.2.4
- Implement 'damo report profile'
- Implement 'damo report times'
- Implement snapshot size based record filtering (--sz_snapshot)
v2.2.3
- Document 'replay' command
- Support profiling data record (--profile option of 'damo record')
- Add a prototype of access pattern-based profiling report generation
v2.2.2
- Implement 'replay' command
- Support damon/next tree feature, quota goal metric
v2.2.1
- Support damon/next tree feature, effective quota
v2.2.0
- Make 'damo show' faster on schemes apply interval supporting kernel
v2.1.9
- dbgfs: Use proc/mounts
- Rename --damon_interface to --damon_interface_DEPRECATED
- Support damon/next kernel change for DAMON debugfs deprecation
(https://git.kernel.org/pub/scm/linux/kernel/git/sj/damon-hack.git/tree/todo?id=90812522ebb5#n9)
v2.1.8
- sysfs: Use proc/mounts
- sysfs/stage_kdamonds(): Be features detection independent
v2.1.7
- Cleanup code
v2.1.6
- Cleanup code
v2.1.5
- Hotfix of v2.1.4: Add missing _damo_print.py file.
v2.1.4
- 'damo show, damo report raw': Use a pager if the output is longer than the
terminal
v2.1.3
- 'damo reclaim': Support 'skip_anon'
- Cleanup code and documents
v2.1.2
- Internal code cleanup
v2.1.1
- Internal code cleanup
v2.1.0
- Remove 'damo translate_damos'
- Internal code cleanup
- Make 'damo show' fail faster for some cases
v2.0.9
- Internal code cleanup
v2.0.8
- Support DAMOS quota goals (not mainlined DAMON feature)
v2.0.7
- 'damo status': Add an option for only entered inputs without updating sysfs
- 'damo fmt_json': Drop non-input fields
v2.0.6
- Optimize 'damo status --damos_stat' to update only needed metrics
- Implement an alternative of '--damos_stat', namely '--damos_stats'
- Remove '--damos_stat' option
v2.0.5
- Code cleanup
- damo show: Use DAMOS address filter if possible
v2.0.4
- Save/load kernel feature supports to/from $HOME/.damo.damon_feature_supports
- Cleanup feature supports handling
v2.0.3
- Let 'damo status --damos_stat' to work with debugfs interface
- Schemes test code cleanup
- Misc code cleanup
v2.0.2
- Remove DAMON results record binary file format handling code
- Schemes test code cleanup
v2.0.1
- Deprecate DAMON results record binary file format
- 'damo status': Support scheme statistic only output
v2.0.0
- Trivial fixes and cleanups
v1.9.9
- Update documents for online usage commands (start/tune/stop/show/status)
v1.9.8
- Support DAMOS apply interval (feature on damon/next only as of this release)
- Update documents
v1.9.7
- Reverse unnecessary support of DAMON's moving access rate
- Support DAMOS apply intrvals (feature on damon/next only as of this release)
- Support DAMOS recording (feature on damon/next only as of this release)
v1.9.6
- Remove '<age access_rate size> region format keyword
- Should use only '<box>'
- Add '<region box description>' snapshot keyword
- Add '--region_box' option for shortcut of box-based representation
- Allow per-key reverse sorting of regions
- Minimul support of DAMON's moving access rate
v1.9.5
- Code cleanup
v1.9.4
- DAMON command line options: Support multiple DAMOS schemes
- damo show: Support log/linear scale of region box
v1.9.3
- Restore --ascii_color and --plot_ascii of 'damo report heat'
- damo show: Support coloring of region box
- damo show: Implement '<age heat bar>'
- damo show: Make region box to use logscale for columns and rows
- damo show: Support more region box customizations
v1.9.2
- Support DAMOS filters, quotas, and watermarks via command line
- Support target idx DAMOS filter
- Implement '<size heat bar>' and '<size heat age bar>' region format keyword
for 'damo show' (likely be changed in future)
v1.9.1
- Remove 'damo stat'
- 'damo show' update
- Support address range based filtering
- Add snapshot format keyword for number of regions
- Implement '<size bar>' region format keyword (subject to change in future)
v1.9.0
- Mark 'damo stat' as deprecated
- Use '--force' for 'perf script'
- Internal code cleanup
v1.8.9
- Support flexible formatting of 'damo show' output
- Implement access pattern based 'damo show' output sorting
- Support --tried_regions_of option of 'damo show'
- Cleanup _damon_resul.py
v1.8.8
- Support under-development schemes tried regions total bytes file
- Fix empty snapshot for vaddr ops issue
- Polish 'damo show' output format
- Support 'update_schemes_tried_bytes' DAMON sysfs command
v1.8.7
- Stop supporting non-mainlined DAMOS kernel implementations
- Rename 'damo show status' into 'damo status'
- Re-implement 'damo show': Support snapshot and record files, but still not
stabilized
v1.8.6
- Cleanup code
v1.8.5
- Add a not yet stabilized version of 'damo show'
v1.8.4
- Remove Python2 support
- Cleanup code
v1.8.3
- Remove '--rbuf' and kernel-direct record file generation support code
- More documentation of deprecated features
- Implement '--include_childs' option for 'damo record'
- Move single line DAMOS schemes input handling to a new module,
_damo_deprecated
v1.8.2
- Support zlib-compressed json format monitoring record file
- Use zlib-compressed json format monitoring record file format by default