181084Sjake/* SPDX-License-Identifier: GPL-2.0 */
281084Sjake#ifndef VM_EVENT_ITEM_H_INCLUDED
381084Sjake#define VM_EVENT_ITEM_H_INCLUDED
481084Sjake
581084Sjake#ifdef CONFIG_ZONE_DMA
681084Sjake#define DMA_ZONE(xx) xx##_DMA,
781084Sjake#else
881084Sjake#define DMA_ZONE(xx)
981084Sjake#endif
1081084Sjake
1191671Sume#ifdef CONFIG_ZONE_DMA32
1291671Sume#define DMA32_ZONE(xx) xx##_DMA32,
13104487Ssam#else
14104487Ssam#define DMA32_ZONE(xx)
15136301Syongari#endif
16136301Syongari
17130294Sscottl#ifdef CONFIG_HIGHMEM
18130294Sscottl#define HIGHMEM_ZONE(xx) xx##_HIGH,
19119382Sjake#else
20119382Sjake#define HIGHMEM_ZONE(xx)
21119382Sjake#endif
22119382Sjake
23133589Smarius#ifdef CONFIG_ZONE_DEVICE
2490623Stmm#define DEVICE_ZONE(xx) xx##_DEVICE,
2586148Stmm#else
26105399Stmm#define DEVICE_ZONE(xx)
27116584Sjake#endif
28136944Syongari
29136944Syongari#define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
30119382Sjake	HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx)
31119382Sjake
32119382Sjakeenum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
33119382Sjake		FOR_ALL_ZONES(PGALLOC)
34119382Sjake		FOR_ALL_ZONES(ALLOCSTALL)
35119382Sjake		FOR_ALL_ZONES(PGSCAN_SKIP)
36119382Sjake		PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE,
37119382Sjake		PGFAULT, PGMAJFAULT,
38119382Sjake		PGLAZYFREED,
39119382Sjake		PGREFILL,
40119816Smarcel		PGREUSE,
41122470Sjake		PGSTEAL_KSWAPD,
42104519Sphk		PGSTEAL_DIRECT,
43113591Sphk		PGSTEAL_KHUGEPAGED,
44104519Sphk		PGSCAN_KSWAPD,
45113819Sphk		PGSCAN_DIRECT,
4693122Stmm		PGSCAN_KHUGEPAGED,
47124516Sdes		PGSCAN_DIRECT_THROTTLE,
48124481Sdes		PGSCAN_ANON,
49124481Sdes		PGSCAN_FILE,
50124481Sdes		PGSTEAL_ANON,
51111072Sjake		PGSTEAL_FILE,
52119382Sjake#ifdef CONFIG_NUMA
53100399Speter		PGSCAN_ZONE_RECLAIM_FAILED,
54111072Sjake#endif
55111072Sjake		PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
56111072Sjake		KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
5786235Stmm		PAGEOUTRUN, PGROTATED,
58136944Syongari		DROP_PAGECACHE, DROP_SLAB,
59133781Smarius		OOM_KILL,
60133781Smarius#ifdef CONFIG_NUMA_BALANCING
61133781Smarius		NUMA_PTE_UPDATES,
62128758Smarius		NUMA_HUGE_PTE_UPDATES,
6386235Stmm		NUMA_HINT_FAULTS,
64129051Smarius		NUMA_HINT_FAULTS_LOCAL,
65129051Smarius		NUMA_PAGE_MIGRATE,
66129051Smarius#endif
67133781Smarius#ifdef CONFIG_MIGRATION
68133781Smarius		PGMIGRATE_SUCCESS, PGMIGRATE_FAIL,
6986235Stmm		THP_MIGRATION_SUCCESS,
7090623Stmm		THP_MIGRATION_FAIL,
7181084Sjake		THP_MIGRATION_SPLIT,
7286235Stmm#endif
7386235Stmm#ifdef CONFIG_COMPACTION
74112399Sjake		COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED,
7581084Sjake		COMPACTISOLATED,
7690623Stmm		COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
7793264Sdillon		KCOMPACTD_WAKE,
7890623Stmm		KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED,
7990623Stmm#endif
8090623Stmm#ifdef CONFIG_HUGETLB_PAGE
8190623Stmm		HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
82105531Stmm#endif
8381084Sjake#ifdef CONFIG_CMA
84111684Sru		CMA_ALLOC_SUCCESS,
8593840Stmm		CMA_ALLOC_FAIL,
8693840Stmm#endif
87133589Smarius		UNEVICTABLE_PGCULLED,	/* culled to noreclaim list */
8893840Stmm		UNEVICTABLE_PGSCANNED,	/* scanned for reclaimability */
89131951Smarcel		UNEVICTABLE_PGRESCUED,	/* rescued from noreclaim list */
9084202Sjake		UNEVICTABLE_PGMLOCKED,
9190623Stmm		UNEVICTABLE_PGMUNLOCKED,
92111684Sru		UNEVICTABLE_PGCLEARED,	/* on COW, page truncate */
9381390Sjake		UNEVICTABLE_PGSTRANDED,	/* unable to isolate on unlock */
9486235Stmm#ifdef CONFIG_TRANSPARENT_HUGEPAGE
95111684Sru		THP_FAULT_ALLOC,
9681084Sjake		THP_FAULT_FALLBACK,
97132956Smarkm		THP_FAULT_FALLBACK_CHARGE,
98101070Sjake		THP_COLLAPSE_ALLOC,
99101070Sjake		THP_COLLAPSE_ALLOC_FAILED,
10089053Sjake		THP_FILE_ALLOC,
10186235Stmm		THP_FILE_FALLBACK,
10293855Stmm		THP_FILE_FALLBACK_CHARGE,
10386235Stmm		THP_FILE_MAPPED,
10481084Sjake		THP_SPLIT_PAGE,
105100844Sjake		THP_SPLIT_PAGE_FAILED,
10682914Sjake		THP_DEFERRED_SPLIT_PAGE,
107119382Sjake		THP_SPLIT_PMD,
108112399Sjake		THP_SCAN_EXCEED_NONE_PTE,
109101070Sjake		THP_SCAN_EXCEED_SWAP_PTE,
11081084Sjake		THP_SCAN_EXCEED_SHARED_PTE,
111101070Sjake#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
11281390Sjake		THP_SPLIT_PUD,
11396998Sjake#endif
11481084Sjake		THP_ZERO_PAGE_ALLOC,
11581084Sjake		THP_ZERO_PAGE_ALLOC_FAILED,
116127297Salc		THP_SWPOUT,
11781084Sjake		THP_SWPOUT_FALLBACK,
118122832Simp#endif
119122832Simp#ifdef CONFIG_MEMORY_BALLOON
120122832Simp		BALLOON_INFLATE,
121122832Simp		BALLOON_DEFLATE,
122122832Simp#ifdef CONFIG_BALLOON_COMPACTION
123122832Simp		BALLOON_MIGRATE,
124#endif
125#endif
126#ifdef CONFIG_DEBUG_TLBFLUSH
127		NR_TLB_REMOTE_FLUSH,	/* cpu tried to flush others' tlbs */
128		NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
129		NR_TLB_LOCAL_FLUSH_ALL,
130		NR_TLB_LOCAL_FLUSH_ONE,
131#endif /* CONFIG_DEBUG_TLBFLUSH */
132#ifdef CONFIG_SWAP
133		SWAP_RA,
134		SWAP_RA_HIT,
135#ifdef CONFIG_KSM
136		KSM_SWPIN_COPY,
137#endif
138#endif
139#ifdef CONFIG_KSM
140		COW_KSM,
141#endif
142#ifdef CONFIG_ZSWAP
143		ZSWPIN,
144		ZSWPOUT,
145		ZSWPWB,
146#endif
147#ifdef CONFIG_X86
148		DIRECT_MAP_LEVEL2_SPLIT,
149		DIRECT_MAP_LEVEL3_SPLIT,
150#endif
151#ifdef CONFIG_PER_VMA_LOCK_STATS
152		VMA_LOCK_SUCCESS,
153		VMA_LOCK_ABORT,
154		VMA_LOCK_RETRY,
155		VMA_LOCK_MISS,
156#endif
157		NR_VM_EVENT_ITEMS
158};
159
160#ifndef CONFIG_TRANSPARENT_HUGEPAGE
161#define THP_FILE_ALLOC ({ BUILD_BUG(); 0; })
162#define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; })
163#define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; })
164#define THP_FILE_MAPPED ({ BUILD_BUG(); 0; })
165#endif
166
167#endif		/* VM_EVENT_ITEM_H_INCLUDED */
168