With increasingly data-intensive workloads and limited DRAM capacity, optimal memory management based on dynamic access patterns is becoming increasingly important. Such mechanisms are only possible if accurate and efficient dynamic access pattern monitoring is available.

DAMON is a Linux kernel subsystem for such data access monitoring and access-aware system operations. It is designed with its key access monitroing mechanisms and a major feature called DAMOS, that make it

  • accurate (for DRAM level memory management),
  • light-weight (enough to be applied online in production),
  • scalable (keeps above properties regardless of memory size) and
  • automated (tuning and access-aware memory maangement operations).

Simple mechanisms based on DAMOS can achieve up to 12% performance improvement and 91% memory savings. Detailed evaluation of DAMON and DAMON-based system optimizations are available at another post.

DAMON is being used in real-world products including AWS Aurora Serverless and SK hynix HMSDK for proactive reclamation and CXL memory tiering. A number of academic researches are also utilizing DAMON for profiling and prototyping, as show by citations of the two (1, 2) DAMON intro papers.

DAMON is available on Linux mainline since v5.15, and multiple major distros including Alma, Amazon, Android, Arch, CentOS, Debian, Fedora, open SUSE, Oracle.

Demo Video/Screenshots

Demo Video

damo monitor for water_nsquared

Demo Screenshot

masim stairs snapshot masim stairs heatmap in ascii

Recent News

Below are only a short list of recent news. For complete list of the news, please refer to a dedicated post.

2025-11-13: An idea for DAMON-based CXL memory management aiming both bandwidth and capacity efficiency, which motivated by recent works from Micron and SK Hynix, has shared.

2025-10-03: DAMON changes including below two have been merged into Linux 6.18-rc1, via memory management subsystem pull request.

  • virtual address space page level monitoring support, which was developed by Yueyang Pan (Meta).
  • 32-bit ARM LAPE support, which was collaboratively developed by Meta and Huawei people (Quanmin Yan and Ze Zuo).

2025-09-23: DAMON has presented at Kernel Recipes.

2025-08-22: A patch series for making DAMON supports ARM (32bit) with LPAE has just landed on mm-new tree. It was made by a great and joyful collaboration between I and Huawei (Quanmin Yan and Zuo Ze).

2025-08-10: DAMON user-space tool added a visualization script for cold memory tail visualization.

Getting Started

You can start using DAMON by

Further read official documents to better understand DAMON’s design and usages. If you prefer more informal videos, slides, or papers, those from past DAMON presentations are also available.

Depending on your system and your desired use case, you might need to

You can also participate in DAMON development.

User-space Tool

A user-space tool for DAMON, which is called DAMO (Data Access Monitoring Operator), is available at Github, PyPi and Linux distro package systems. You may start using DAMON by following the Getting Started of the tool for start.

Official Document

The official document of DAMON in the latest mainline for users/sysadmins and kernel programmers are available. Those for next major release are also available(users/sysadmins doc, kernel programmers doc).

Publications and Presentations

Below are featured publications and presentations covering DAMON. For full list of the past and upcoming presentations, please refer to another dedicated post.

Academic papers

For people who more familiar to academic papers, DAMON papers for Middleware'19 Industry and HPDC'22 are recommended to read and/or cite. The paper for Middleware'19 covers DAMON’s monitoring mechanisms and access pattern profiling-guided optimizations. The paper for HPDC'22 extends the coverage to DAMOS (automated access-aware system operations) and user-space driven auto-tuning.

Talks for beginners and users

If you are looking for a resources to start with, below talks are recommended.

  • SeongJae Park, Overcoming Observer Effects in Memory Management with DAMON. In Kernel Recipes, Sep 2025. Slides, Video, Link
  • SeongJae Park, Self-Driving DAMON/S: Controlled and Automated Access-aware Efficient Systems. In Open Source Summit North America, Jun 2025. Slides, Video, Link
  • SeongJae Park, DAMON: Kernel Subsystem for Data Access Monitoring and Access-aware System Operations. In Fosdem, Feb 2025. Slides, Video, Link

Talks for experts and developers

If you want to track recent DAMON developmeent status and plans, below talks are recommended.

  • SeongJae Park, DAMON Requirements for Access-aware MM of Future. In Linux Storage | Filesystem | MM & BPF Summit, Mar 2025. Slides, Link
  • SeongJae Park, DAMON Updates and Plans: Monitoring Parameters Auot-tuning and Memory Tiering. In Linux Storage | Filesystem | MM & BPF Summit, Mar 2025. Slides, Link
  • SeongJae Park, DAMON: Long-term Plans for Kernel That {Just Works,Extensible}. In Linux Kernel Memory Management Microconferenct at Linux Plumbers, Sep 2024. Slides, Video, Link

Community

DAMON is maintained and developed by its own community, which is a sub-set of the linux kernel development community.

The community is mainly driven by the mailing list (damon@lists.linux.dev). All the patches are posted there and reviewed. Almost every discussions are also made there.

For easy communication, a mailing tool called HacKerMaiL is recommended. The tool is maintained by DAMON maintainer and committed to support DAMON community.

If you prefer web-based interface for reading the mails, you can use lore. If you prefer the traditional subscription based mailing workflow, you can subscribe to the mailing list via subspace.kernel.org following the instruction.

The community also have an open, regular, and informal virtual bi-weekly meeting series for DAMON community called DAMON Beer/Coffee/Tea chat series.

Contribution

DAMON and its related projects including damo and hackermail are open source projects. You can contribute to the development following the guidelines. Please refer to below contribution guidelines of each project to further look into the process.

Setup for Advanced Use Cases

Install

DAMON is a part of Linux kernel. To use DAMON, therefore, you should ensure your system is running with a DAMON-enabled Linux kernel.

To check if your kernel is a DAMON-enabled one, you could:

$ if grep -q '^CONFIG_DAMON=y' /boot/config-$(uname -r);
then
    echo "installed"
else
    echo "not installed"
fi

As of 2025-11-25, kernels of major Linux distros including Alma Linux, Amazon Linux, Android, Arch, CentOS, Debian, Fedora, openSUSE and Oracle Linux enabled DAMON. If your distro provides an appropriate DAMON-enabled kernel, install it using the package manager of the distro.

If your package system doesn’t support DAMON-enabled kernel, you can fetch a DAMON-merged Linux kernel source tree, build, and install it. Note that you should enable kernel configuration options for DAMON, depending on your demands. For example:

$ cd $THE_FETCHED_DAMON_KERNEL_SOURCE_TREE
$ make olddefconfig
$ echo 'CONFIG_DAMON=y' >> ./.config
$ echo 'CONFIG_DAMON_VADDR=y' >> ./.config
$ echo 'CONFIG_DAMON_PADDR=y' >> ./.config
$ echo 'CONFIG_DAMON_SYSFS=y' >> ./.config
$ echo 'CONFIG_DAMON_DBGFS=y' >> ./.config
$ echo 'CONFIG_DAMON_RECLAIM=y' >> ./.config
$ echo 'CONFIG_DAMON_LRU_SORT=y' >> ./.config
$ echo 'CONFIG_DAMON_STAT=y' >> ./.config
$ make -j$(nproc)
$ sudo make modules_install install

Source Code

There are several Linux kernel source trees having DAMON for different users. You may pick one among those based on your needs.

For users who want a stable version of DAMON, Linus Torvalds' mainline tree or stable kernels are recommended. Note that DAMON has merged into mainline since v5.15.

If you have interests in DAMON features under development, refer to developement source trees section of DAMON official documents.

Tests Package

There is a tests suite for correctness verification and performance evaluation of DAMON. Those are actively used for the development of DAMON. Using that, you can test DAMON on your machine with only a few simple commands or deeply understand the user interface of DAMON.

So, if you finished the tutorial but have no idea about what to do next, running the tests would be a good start. If any test fails, please report that to the maintainer via mail (sj@kernel.org or damon@lists.linux.dev) or github.

Showcase Website

There is a showcase website that you can get more information of DAMON. The site hosts

  • the heatmap format dynamic access pattern of various realistic workloads for heap area, mmap()-ed area, and stack area,
  • the dynamic working set size distribution and chronological working set size changes, and
  • daily performance test results.

Good to Read

Evaluation Results

Evaluation of DAMON and DAMON-based system optimizations are available.

DAMON-based System Optimization Guide

A guide for DAMON-based system optimizations are also available.

Profile-Guided Optimization Example

An example of DAMON-based profile-guided optimization is also available.