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

Updates after initial posting. 2026-02-18 update: LSF/MM/BPF topic for discussing the NUMA hinting faults reuse is posted. 2026-01-13 update: The RFC v3 has posted to the mailing list. 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]....

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

Citations

This post lists research papers and news articles citing DAMON in an interesting way rather than just simple name listing. The list is collected in a human sense from incomplete searching, so it is quite far from perfect. Please reach out to sj@kernel.org if you want updates on the list. Yet another way to get the list would be using the Google Scholar for DAMON author-published paper ciataions (1, 2)....

November 26, 2025 · 3 min · 591 words · Me

DAMON for Write-only or Given CPUs-only Monitoring

2025-12-08 update: The RFC v3 is posted. 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....

August 3, 2025 · 3 min · 502 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 · 531 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