xref: /linux-6.15/include/linux/vm_event_item.h (revision 57e9cc50)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2f042e707SAndrew Morton #ifndef VM_EVENT_ITEM_H_INCLUDED
3f042e707SAndrew Morton #define VM_EVENT_ITEM_H_INCLUDED
4f042e707SAndrew Morton 
5f042e707SAndrew Morton #ifdef CONFIG_ZONE_DMA
6f042e707SAndrew Morton #define DMA_ZONE(xx) xx##_DMA,
7f042e707SAndrew Morton #else
8f042e707SAndrew Morton #define DMA_ZONE(xx)
9f042e707SAndrew Morton #endif
10f042e707SAndrew Morton 
11f042e707SAndrew Morton #ifdef CONFIG_ZONE_DMA32
12f042e707SAndrew Morton #define DMA32_ZONE(xx) xx##_DMA32,
13f042e707SAndrew Morton #else
14f042e707SAndrew Morton #define DMA32_ZONE(xx)
15f042e707SAndrew Morton #endif
16f042e707SAndrew Morton 
17f042e707SAndrew Morton #ifdef CONFIG_HIGHMEM
18f7ae3a95Syalin wang #define HIGHMEM_ZONE(xx) xx##_HIGH,
19f042e707SAndrew Morton #else
20f042e707SAndrew Morton #define HIGHMEM_ZONE(xx)
21f042e707SAndrew Morton #endif
22f042e707SAndrew Morton 
23a39c5d3cSHao Lee #ifdef CONFIG_ZONE_DEVICE
24a39c5d3cSHao Lee #define DEVICE_ZONE(xx) xx##_DEVICE,
25a39c5d3cSHao Lee #else
26a39c5d3cSHao Lee #define DEVICE_ZONE(xx)
27a39c5d3cSHao Lee #endif
28a39c5d3cSHao Lee 
29a39c5d3cSHao Lee #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
30a39c5d3cSHao Lee 	HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx)
31f042e707SAndrew Morton 
32f042e707SAndrew Morton enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
33a39c5d3cSHao Lee 		FOR_ALL_ZONES(PGALLOC)
34a39c5d3cSHao Lee 		FOR_ALL_ZONES(ALLOCSTALL)
35a39c5d3cSHao Lee 		FOR_ALL_ZONES(PGSCAN_SKIP)
36f7ad2a6cSShaohua Li 		PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE,
37f042e707SAndrew Morton 		PGFAULT, PGMAJFAULT,
38854e9ed0SMinchan Kim 		PGLAZYFREED,
39599d0c95SMel Gorman 		PGREFILL,
40798a6b87SPeter Xu 		PGREUSE,
41599d0c95SMel Gorman 		PGSTEAL_KSWAPD,
42599d0c95SMel Gorman 		PGSTEAL_DIRECT,
43*57e9cc50SJohannes Weiner 		PGSTEAL_KHUGEPAGED,
44668e4147SYang Shi 		PGDEMOTE_KSWAPD,
45668e4147SYang Shi 		PGDEMOTE_DIRECT,
46*57e9cc50SJohannes Weiner 		PGDEMOTE_KHUGEPAGED,
47599d0c95SMel Gorman 		PGSCAN_KSWAPD,
48599d0c95SMel Gorman 		PGSCAN_DIRECT,
49*57e9cc50SJohannes Weiner 		PGSCAN_KHUGEPAGED,
5068243e76SMel Gorman 		PGSCAN_DIRECT_THROTTLE,
51497a6c1bSJohannes Weiner 		PGSCAN_ANON,
52497a6c1bSJohannes Weiner 		PGSCAN_FILE,
53497a6c1bSJohannes Weiner 		PGSTEAL_ANON,
54497a6c1bSJohannes Weiner 		PGSTEAL_FILE,
55f042e707SAndrew Morton #ifdef CONFIG_NUMA
56f042e707SAndrew Morton 		PGSCAN_ZONE_RECLAIM_FAILED,
57f042e707SAndrew Morton #endif
58904249aaSYing Han 		PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
59f042e707SAndrew Morton 		KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
607cc30fcfSMel Gorman 		PAGEOUTRUN, PGROTATED,
615509a5d2SDave Hansen 		DROP_PAGECACHE, DROP_SLAB,
628e675f7aSKonstantin Khlebnikov 		OOM_KILL,
6303c5a6e1SMel Gorman #ifdef CONFIG_NUMA_BALANCING
6403c5a6e1SMel Gorman 		NUMA_PTE_UPDATES,
6572403b4aSMel Gorman 		NUMA_HUGE_PTE_UPDATES,
6603c5a6e1SMel Gorman 		NUMA_HINT_FAULTS,
6703c5a6e1SMel Gorman 		NUMA_HINT_FAULTS_LOCAL,
6803c5a6e1SMel Gorman 		NUMA_PAGE_MIGRATE,
6903c5a6e1SMel Gorman #endif
705647bc29SMel Gorman #ifdef CONFIG_MIGRATION
715647bc29SMel Gorman 		PGMIGRATE_SUCCESS, PGMIGRATE_FAIL,
721a5bae25SAnshuman Khandual 		THP_MIGRATION_SUCCESS,
731a5bae25SAnshuman Khandual 		THP_MIGRATION_FAIL,
741a5bae25SAnshuman Khandual 		THP_MIGRATION_SPLIT,
755647bc29SMel Gorman #endif
76f042e707SAndrew Morton #ifdef CONFIG_COMPACTION
77397487dbSMel Gorman 		COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED,
78397487dbSMel Gorman 		COMPACTISOLATED,
79f042e707SAndrew Morton 		COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
80698b1b30SVlastimil Babka 		KCOMPACTD_WAKE,
817f354a54SDavid Rientjes 		KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED,
82f042e707SAndrew Morton #endif
83f042e707SAndrew Morton #ifdef CONFIG_HUGETLB_PAGE
84f042e707SAndrew Morton 		HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
85f042e707SAndrew Morton #endif
86bbb26920SMinchan Kim #ifdef CONFIG_CMA
87bbb26920SMinchan Kim 		CMA_ALLOC_SUCCESS,
88bbb26920SMinchan Kim 		CMA_ALLOC_FAIL,
89bbb26920SMinchan Kim #endif
90f042e707SAndrew Morton 		UNEVICTABLE_PGCULLED,	/* culled to noreclaim list */
91f042e707SAndrew Morton 		UNEVICTABLE_PGSCANNED,	/* scanned for reclaimability */
92f042e707SAndrew Morton 		UNEVICTABLE_PGRESCUED,	/* rescued from noreclaim list */
93f042e707SAndrew Morton 		UNEVICTABLE_PGMLOCKED,
94f042e707SAndrew Morton 		UNEVICTABLE_PGMUNLOCKED,
95f042e707SAndrew Morton 		UNEVICTABLE_PGCLEARED,	/* on COW, page truncate */
96f042e707SAndrew Morton 		UNEVICTABLE_PGSTRANDED,	/* unable to isolate on unlock */
97f042e707SAndrew Morton #ifdef CONFIG_TRANSPARENT_HUGEPAGE
98f042e707SAndrew Morton 		THP_FAULT_ALLOC,
99f042e707SAndrew Morton 		THP_FAULT_FALLBACK,
10085b9f46eSDavid Rientjes 		THP_FAULT_FALLBACK_CHARGE,
101f042e707SAndrew Morton 		THP_COLLAPSE_ALLOC,
102f042e707SAndrew Morton 		THP_COLLAPSE_ALLOC_FAILED,
10395ecedcdSKirill A. Shutemov 		THP_FILE_ALLOC,
104dcdf11eeSDavid Rientjes 		THP_FILE_FALLBACK,
10585b9f46eSDavid Rientjes 		THP_FILE_FALLBACK_CHARGE,
10695ecedcdSKirill A. Shutemov 		THP_FILE_MAPPED,
107122afea9SKirill A. Shutemov 		THP_SPLIT_PAGE,
108122afea9SKirill A. Shutemov 		THP_SPLIT_PAGE_FAILED,
109f9719a03SKirill A. Shutemov 		THP_DEFERRED_SPLIT_PAGE,
110122afea9SKirill A. Shutemov 		THP_SPLIT_PMD,
111e9ea874aSYang Yang 		THP_SCAN_EXCEED_NONE_PTE,
112e9ea874aSYang Yang 		THP_SCAN_EXCEED_SWAP_PTE,
113e9ea874aSYang Yang 		THP_SCAN_EXCEED_SHARED_PTE,
114ce9311cfSYisheng Xie #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
115ce9311cfSYisheng Xie 		THP_SPLIT_PUD,
116ce9311cfSYisheng Xie #endif
117d8a8e1f0SKirill A. Shutemov 		THP_ZERO_PAGE_ALLOC,
118d8a8e1f0SKirill A. Shutemov 		THP_ZERO_PAGE_ALLOC_FAILED,
119225311a4SHuang Ying 		THP_SWPOUT,
120fe490cc0SHuang Ying 		THP_SWPOUT_FALLBACK,
121f042e707SAndrew Morton #endif
12209316c09SKonstantin Khlebnikov #ifdef CONFIG_MEMORY_BALLOON
12309316c09SKonstantin Khlebnikov 		BALLOON_INFLATE,
12409316c09SKonstantin Khlebnikov 		BALLOON_DEFLATE,
12509316c09SKonstantin Khlebnikov #ifdef CONFIG_BALLOON_COMPACTION
12609316c09SKonstantin Khlebnikov 		BALLOON_MIGRATE,
12709316c09SKonstantin Khlebnikov #endif
12809316c09SKonstantin Khlebnikov #endif
129ec659934SMel Gorman #ifdef CONFIG_DEBUG_TLBFLUSH
1309824cf97SDave Hansen 		NR_TLB_REMOTE_FLUSH,	/* cpu tried to flush others' tlbs */
1319824cf97SDave Hansen 		NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
1329824cf97SDave Hansen 		NR_TLB_LOCAL_FLUSH_ALL,
1339824cf97SDave Hansen 		NR_TLB_LOCAL_FLUSH_ONE,
134ec659934SMel Gorman #endif /* CONFIG_DEBUG_TLBFLUSH */
135cbc65df2SHuang Ying #ifdef CONFIG_SWAP
136cbc65df2SHuang Ying 		SWAP_RA,
137cbc65df2SHuang Ying 		SWAP_RA_HIT,
1384d45c3afSYang Yang #ifdef CONFIG_KSM
1394d45c3afSYang Yang 		KSM_SWPIN_COPY,
1404d45c3afSYang Yang #endif
141cbc65df2SHuang Ying #endif
14294bfe85bSYang Yang #ifdef CONFIG_KSM
14394bfe85bSYang Yang 		COW_KSM,
14494bfe85bSYang Yang #endif
145f6498b77SJohannes Weiner #ifdef CONFIG_ZSWAP
146f6498b77SJohannes Weiner 		ZSWPIN,
147f6498b77SJohannes Weiner 		ZSWPOUT,
148f6498b77SJohannes Weiner #endif
149575299eaSSaravanan D #ifdef CONFIG_X86
150575299eaSSaravanan D 		DIRECT_MAP_LEVEL2_SPLIT,
151575299eaSSaravanan D 		DIRECT_MAP_LEVEL3_SPLIT,
152575299eaSSaravanan D #endif
153f042e707SAndrew Morton 		NR_VM_EVENT_ITEMS
154f042e707SAndrew Morton };
155f042e707SAndrew Morton 
15695ecedcdSKirill A. Shutemov #ifndef CONFIG_TRANSPARENT_HUGEPAGE
15795ecedcdSKirill A. Shutemov #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; })
158dcdf11eeSDavid Rientjes #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; })
15985b9f46eSDavid Rientjes #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; })
16095ecedcdSKirill A. Shutemov #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; })
16195ecedcdSKirill A. Shutemov #endif
16295ecedcdSKirill A. Shutemov 
163f042e707SAndrew Morton #endif		/* VM_EVENT_ITEM_H_INCLUDED */
164