xref: /linux/include/linux/vm_event_item.h (revision 334fbe734e687404f346eba7d5d96ed2b44d35ab)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef VM_EVENT_ITEM_H_INCLUDED
3 #define VM_EVENT_ITEM_H_INCLUDED
4 
5 #include <linux/thread_info.h>
6 
7 #ifdef CONFIG_ZONE_DMA
8 #define DMA_ZONE(xx) xx##_DMA,
9 #else
10 #define DMA_ZONE(xx)
11 #endif
12 
13 #ifdef CONFIG_ZONE_DMA32
14 #define DMA32_ZONE(xx) xx##_DMA32,
15 #else
16 #define DMA32_ZONE(xx)
17 #endif
18 
19 #ifdef CONFIG_HIGHMEM
20 #define HIGHMEM_ZONE(xx) xx##_HIGH,
21 #else
22 #define HIGHMEM_ZONE(xx)
23 #endif
24 
25 #ifdef CONFIG_ZONE_DEVICE
26 #define DEVICE_ZONE(xx) xx##_DEVICE,
27 #else
28 #define DEVICE_ZONE(xx)
29 #endif
30 
31 #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
32 	HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx)
33 
34 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
35 		FOR_ALL_ZONES(PGALLOC)
36 		FOR_ALL_ZONES(ALLOCSTALL)
37 		FOR_ALL_ZONES(PGSCAN_SKIP)
38 		PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE,
39 		PGFAULT, PGMAJFAULT,
40 		PGLAZYFREED,
41 		PGREUSE,
42 		PGSCAN_DIRECT_THROTTLE,
43 #ifdef CONFIG_NUMA
44 		PGSCAN_ZONE_RECLAIM_SUCCESS,
45 		PGSCAN_ZONE_RECLAIM_FAILED,
46 #endif
47 		PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
48 		KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
49 		PAGEOUTRUN, PGROTATED,
50 		DROP_PAGECACHE, DROP_SLAB,
51 		OOM_KILL,
52 #ifdef CONFIG_NUMA_BALANCING
53 		NUMA_PTE_UPDATES,
54 		NUMA_HUGE_PTE_UPDATES,
55 		NUMA_HINT_FAULTS,
56 		NUMA_HINT_FAULTS_LOCAL,
57 		NUMA_PAGE_MIGRATE,
58 #endif
59 #ifdef CONFIG_MIGRATION
60 		PGMIGRATE_SUCCESS, PGMIGRATE_FAIL,
61 		THP_MIGRATION_SUCCESS,
62 		THP_MIGRATION_FAIL,
63 		THP_MIGRATION_SPLIT,
64 #endif
65 #ifdef CONFIG_COMPACTION
66 		COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED,
67 		COMPACTISOLATED,
68 		COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
69 		KCOMPACTD_WAKE,
70 		KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED,
71 #endif
72 #ifdef CONFIG_HUGETLB_PAGE
73 		HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
74 #endif
75 #ifdef CONFIG_CMA
76 		CMA_ALLOC_SUCCESS,
77 		CMA_ALLOC_FAIL,
78 #endif
79 		UNEVICTABLE_PGCULLED,	/* culled to noreclaim list */
80 		UNEVICTABLE_PGSCANNED,	/* scanned for reclaimability */
81 		UNEVICTABLE_PGRESCUED,	/* rescued from noreclaim list */
82 		UNEVICTABLE_PGMLOCKED,
83 		UNEVICTABLE_PGMUNLOCKED,
84 		UNEVICTABLE_PGCLEARED,	/* on COW, page truncate */
85 		UNEVICTABLE_PGSTRANDED,	/* unable to isolate on unlock */
86 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
87 		THP_FAULT_ALLOC,
88 		THP_FAULT_FALLBACK,
89 		THP_FAULT_FALLBACK_CHARGE,
90 		THP_COLLAPSE_ALLOC,
91 		THP_COLLAPSE_ALLOC_FAILED,
92 		THP_FILE_ALLOC,
93 		THP_FILE_FALLBACK,
94 		THP_FILE_FALLBACK_CHARGE,
95 		THP_FILE_MAPPED,
96 		THP_SPLIT_PAGE,
97 		THP_SPLIT_PAGE_FAILED,
98 		THP_DEFERRED_SPLIT_PAGE,
99 		THP_UNDERUSED_SPLIT_PAGE,
100 		THP_SPLIT_PMD,
101 		THP_SCAN_EXCEED_NONE_PTE,
102 		THP_SCAN_EXCEED_SWAP_PTE,
103 		THP_SCAN_EXCEED_SHARED_PTE,
104 #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
105 		THP_SPLIT_PUD,
106 #endif
107 		THP_ZERO_PAGE_ALLOC,
108 		THP_ZERO_PAGE_ALLOC_FAILED,
109 		THP_SWPOUT,
110 		THP_SWPOUT_FALLBACK,
111 #endif
112 #ifdef CONFIG_BALLOON
113 		BALLOON_INFLATE,
114 		BALLOON_DEFLATE,
115 #ifdef CONFIG_BALLOON_MIGRATION
116 		BALLOON_MIGRATE,
117 #endif /* CONFIG_BALLOON_MIGRATION */
118 #endif /* CONFIG_BALLOON */
119 #ifdef CONFIG_DEBUG_TLBFLUSH
120 		NR_TLB_REMOTE_FLUSH,	/* cpu tried to flush others' tlbs */
121 		NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
122 		NR_TLB_LOCAL_FLUSH_ALL,
123 		NR_TLB_LOCAL_FLUSH_ONE,
124 #endif /* CONFIG_DEBUG_TLBFLUSH */
125 #ifdef CONFIG_SWAP
126 		SWAP_RA,
127 		SWAP_RA_HIT,
128 		SWPIN_ZERO,
129 		SWPOUT_ZERO,
130 #ifdef CONFIG_KSM
131 		KSM_SWPIN_COPY,
132 #endif
133 #endif
134 #ifdef CONFIG_KSM
135 		COW_KSM,
136 #endif
137 #ifdef CONFIG_ZSWAP
138 		ZSWPIN,
139 		ZSWPOUT,
140 		ZSWPWB,
141 #endif
142 #ifdef CONFIG_X86
143 		DIRECT_MAP_LEVEL2_SPLIT,
144 		DIRECT_MAP_LEVEL3_SPLIT,
145 		DIRECT_MAP_LEVEL2_COLLAPSE,
146 		DIRECT_MAP_LEVEL3_COLLAPSE,
147 #endif
148 #ifdef CONFIG_PER_VMA_LOCK_STATS
149 		VMA_LOCK_SUCCESS,
150 		VMA_LOCK_ABORT,
151 		VMA_LOCK_RETRY,
152 		VMA_LOCK_MISS,
153 #endif
154 #ifdef CONFIG_DEBUG_STACK_USAGE
155 		KSTACK_1K,
156 #if THREAD_SIZE > 1024
157 		KSTACK_2K,
158 #endif
159 #if THREAD_SIZE > 2048
160 		KSTACK_4K,
161 #endif
162 #if THREAD_SIZE > 4096
163 		KSTACK_8K,
164 #endif
165 #if THREAD_SIZE > 8192
166 		KSTACK_16K,
167 #endif
168 #if THREAD_SIZE > 16384
169 		KSTACK_32K,
170 #endif
171 #if THREAD_SIZE > 32768
172 		KSTACK_64K,
173 #endif
174 #if THREAD_SIZE > 65536
175 		KSTACK_REST,
176 #endif
177 #endif /* CONFIG_DEBUG_STACK_USAGE */
178 		NR_VM_EVENT_ITEMS
179 };
180 
181 #ifndef CONFIG_TRANSPARENT_HUGEPAGE
182 #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; })
183 #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; })
184 #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; })
185 #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; })
186 #endif
187 
188 #endif		/* VM_EVENT_ITEM_H_INCLUDED */
189