DAMON for Write-only or Given CPUs-only Monitoring

From the very early days of DAMON, there were attempts to extend it for cpus-aware monitoring and write-only monitoring. In 2022, Xin Hao proposed extending DAMON for NUMA access statistics. In 2022 and 2025, Pedro Demarchi Gomes proposed extending DAMON for writes-only monitoring. Those proposals are not yet upstreamed though. We continued similar DAMON extension discussions publicly and privately, with multiple parties, though. I was recently taking some time on these, and happy to announce the first working prototype for the extensions....

August 3, 2025 · 3 min · 495 words · Me

`damo report heatmap` modernization for snapshots, page level monitoring and intervals auto-tuning

TL; DR: damo report heatmap has recently advanced to support modern DAMON features including age tracking, snapshots, page level monitoring, and monitoring intervals auto-tuning. It will help users intuitively understand the monitored access patterns at a glance. DAMON in The Past: Full Recording based Monitoring At the beginning, DAMON was providing only the access frequency of each memory region in real time. Hence heatmap visualization, which shows the access frequency of each memory area in the timeline was the first and one of the best ways to see the access pattern....

June 8, 2025 · 10 min · 1989 words · Me

Why the heatmap is not showing the expected access patterns?

TL; DR: try --draw_range all option of damo report heatmap if it shows not what you expected. --interactive_edit option can also be helpful, like below. Problem: Scoping of Huge Time/Space damo report heatmap outputs sometimes show no expected access pattern. It is sometimes just entirely black, or shows some access pattern but not what the user expected. This post is for explaining the reason and how you can work around....

March 16, 2025 · 3 min · 534 words · Me

Upcoming feature: Page level peroperties based access monitoring

We’re working on making DAMON to be used for page level properties based access monitoring. The idea is to let users describe specific page level properties that are interested in, and provides the size of the type of memory in each regions that DAMON found unique access pattern. Hence, users can know how much of memory of specific access temperature is having the type. For example, you can know how much of memory that not accessed for more than 20 minutes are having how much file-backed pages of a cgroup....

December 23, 2024 · 3 min · 470 words · Me

damo v2.5.7 new features: temperature filtering and formatting

damo v2.5.7 is released on 2024-11-25. Two new major features on this version are temperature-based regions filtering and formatting. Temperature “Temperature” of each memory region represents relative access hotness of the region. It is calculated as weighted sum of size, access rate (a.k.a nr_accesses) and age of each region. By default, the weights for the three properties are 0, 100, and 100. Users can manually set it using --temperature_weights option....

November 25, 2024 · 3 min · 510 words · Me

A guide to DAMON tuning and results interpretation for hot pages

The initial version of this post was initially posted to DAMON mailing list as https://lore.kernel.org/20241108232536.73843-1-sj@kernel.org Posting it here too, for visibility and after-posting updates for any needs. One of common issues that I received from DAMON users is that DAMON’s monitoring results show hot regions much less than expected. Specifically, the users find regions of only zero or low ’nr_accesses’ value from the DAMON-generated access pattern snapshots. In some cases, it turned out the problem can be alleviated by tuning DAMON parameters or changing the way to interpret the results....

November 8, 2024 · 19 min · 3952 words · Me

Auto-tuning DAMOS using `damo`

Starting from Linux v6.9, DAMON provides DAMOS quota auto-tuning. It allows users to set a target metric and value. Then, DAMOS will adjust its aggressiveness (effective quota) to achieve the target. damo users can also use the feature using --damos_quota_goal option. But apparently the usage is not well documented. Maybe it should be documented somewhere on USAGE.md of damo, but I cannot find a good splot for now. So I’m explaining the usage in more informal way on this post....

November 3, 2024 · 4 min · 702 words · Me