ENUM DAMOS_ACTION(9)
๐ enum damos_action(9) โ Kernel API Manual ๐
okay bestie, so this page is from the Kernel API Manual, and it's all about enum damos_action โ which, no cap, is the whole menu of moves a DAMOS (that's Data Access Monitoring-based Operation Scheme) can actually pull off. โจ
๐ธ NAME ๐ธ
enum damos_action โ literally represents an action of a Data Access Monitoring-based Operation Scheme. That's it, that's the vibe. ๐ซถ
๐ฆ SYNOPSIS ๐ฆ
enum damos_action {
DAMOS_WILLNEED ,
DAMOS_COLD ,
DAMOS_PAGEOUT ,
DAMOS_HUGEPAGE ,
DAMOS_NOHUGEPAGE ,
DAMOS_COLLAPSE ,
DAMOS_LRU_PRIO ,
DAMOS_LRU_DEPRIO ,
DAMOS_MIGRATE_HOT ,
DAMOS_MIGRATE_COLD ,
DAMOS_STAT ,
NR_DAMOS_ACTIONS
};
โญ Constants โญ
okay so here's the whole cast, main character by main character ๐
DAMOS_WILLNEEDโ callsmadviseon the region withMADV_WILLNEED. she's saying "hey, we're gonna need this soon" ๐ฎDAMOS_COLDโ callsmadviseon the region withMADV_COLD. marking it as, wellโฆ not the moment ๐งDAMOS_PAGEOUTโ reclaims the region. bye bye bestie ๐DAMOS_HUGEPAGEโ callsmadviseon the region withMADV_HUGEPAGE. big pages energy ๐DAMOS_NOHUGEPAGEโ callsmadviseon the region withMADV_NOHUGEPAGE. big pages, but make it no ๐ โโ๏ธDAMOS_COLLAPSEโ callsmadviseon the region withMADV_COLLAPSE. squishing it all together, iconic ๐ซDAMOS_LRU_PRIOโ prioritizes the region on its LRU lists. glow-up, ranking edition ๐DAMOS_LRU_DEPRIOโ deprioritizes the region on its LRU lists. demoted, but make it fashion ๐ญDAMOS_MIGRATE_HOTโ migrates the regions, prioritizing warmer regions. moving the hot girlies first ๐ฅDAMOS_MIGRATE_COLDโ migrates the regions, prioritizing colder regions. moving the chill ones first ๐จ๏ธDAMOS_STATโ does absolutely nothing except count the stat. literally just standing there, observing, taking notes ๐NR_DAMOS_ACTIONSโ the total number of DAMOS actions. the headcount, the roster size ๐งฎ
๐ Description ๐
so here's the tea: whether each action is actually supported is entirely up to whichever struct damon_operations is running at the time. it's giving "depends on the group chat you're in." ๐ซ
if you wanna know the real support status for each one, go check the 'Operation Action' section of Documentation/mm/damon/design.rst โ that's the receipts, iykyk. ๐
โ ๏ธ lowkey important: note that DAMOS_PAGEOUT doesn't trigger demotions. not a demotion, no cap. don't @ me.
๐ SEE ALSO ๐
the whole friend group, in the kernel file ./include/linux/damon.h:
struct damon_addr_range(9)struct damon_size_range(9)struct damon_region(9)struct damon_target(9)enum damos_quota_goal_metric(9)struct damos_quota_goal(9)enum damos_quota_goal_tuner(9)struct damos_quota(9)enum damos_wmark_metric(9)struct damos_watermarks(9)struct damos_stat(9)enum damos_filter_type(9)struct damos_filter(9)struct damos_walk_control(9)struct damos_access_pattern(9)struct damos_migrate_dests(9)struct damos(9)enum damon_ops_id(9)struct damon_operations(9)struct damon_intervals_goal(9)enum damon_filter_type(9)struct damon_filter(9)struct damon_probe(9)struct damon_attrs(9)struct damon_ctx(9)
and that's the page!! ๐
this little beauty lives in ./include/linux and it's dated October 2026 โ so yeah, she's from the future, slay. mwah, go read your structs bestie ๐โจ๐
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms