A rough plan for CPUs/write-only monitoring RFC v3 and future

Below is also sent as a mail to DAMON mailing list and relevant people. I’m working [1] on extending DAMON to monitor accesses that are made by specific CPUs, and/or for writes. The aimed usages include NUMA hit/miss monitoring [2], Kernel Same page Merging scan target selection [3,4], cache aware CPU scheduling, live migration target VM selection [5], and general NUMA-aware pages migration [6]. I posted its first working version as RFC v2 [7] about four months ago....

November 28, 2025 · 4 min · 742 words · Me

Citations

This post lists research papers and news articles citing DAMON. The list is best effort collection of the papers and articles, so may not be perfect. Taehyung Lee, Sumit Monga, Young Ik Eom, and Changwoo Min. 2025. Harnessing Page Access Frequency Distribution for Efficient Memory Tiering. ACM Trans. Comput. Syst. Just Accepted (November 2025). https://doi.org/10.1145/3777549 Introduces DAMON as a recently introduced way for doing page table based access tracking that mitigates the mointoring overhead....

November 26, 2025 · 1 min · 108 words · Me

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