Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
f042e707 AM |
2 | #ifndef VM_EVENT_ITEM_H_INCLUDED |
3 | #define VM_EVENT_ITEM_H_INCLUDED | |
4 | ||
5 | #ifdef CONFIG_ZONE_DMA | |
6 | #define DMA_ZONE(xx) xx##_DMA, | |
7 | #else | |
8 | #define DMA_ZONE(xx) | |
9 | #endif | |
10 | ||
11 | #ifdef CONFIG_ZONE_DMA32 | |
12 | #define DMA32_ZONE(xx) xx##_DMA32, | |
13 | #else | |
14 | #define DMA32_ZONE(xx) | |
15 | #endif | |
16 | ||
17 | #ifdef CONFIG_HIGHMEM | |
f7ae3a95 | 18 | #define HIGHMEM_ZONE(xx) xx##_HIGH, |
f042e707 AM |
19 | #else |
20 | #define HIGHMEM_ZONE(xx) | |
21 | #endif | |
22 | ||
a39c5d3c HL |
23 | #ifdef CONFIG_ZONE_DEVICE |
24 | #define DEVICE_ZONE(xx) xx##_DEVICE, | |
25 | #else | |
26 | #define DEVICE_ZONE(xx) | |
27 | #endif | |
28 | ||
29 | #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \ | |
30 | HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx) | |
f042e707 AM |
31 | |
32 | enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, | |
a39c5d3c HL |
33 | FOR_ALL_ZONES(PGALLOC) |
34 | FOR_ALL_ZONES(ALLOCSTALL) | |
35 | FOR_ALL_ZONES(PGSCAN_SKIP) | |
f7ad2a6c | 36 | PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE, |
f042e707 | 37 | PGFAULT, PGMAJFAULT, |
854e9ed0 | 38 | PGLAZYFREED, |
599d0c95 | 39 | PGREFILL, |
798a6b87 | 40 | PGREUSE, |
599d0c95 MG |
41 | PGSTEAL_KSWAPD, |
42 | PGSTEAL_DIRECT, | |
57e9cc50 | 43 | PGSTEAL_KHUGEPAGED, |
668e4147 YS |
44 | PGDEMOTE_KSWAPD, |
45 | PGDEMOTE_DIRECT, | |
57e9cc50 | 46 | PGDEMOTE_KHUGEPAGED, |
599d0c95 MG |
47 | PGSCAN_KSWAPD, |
48 | PGSCAN_DIRECT, | |
57e9cc50 | 49 | PGSCAN_KHUGEPAGED, |
68243e76 | 50 | PGSCAN_DIRECT_THROTTLE, |
497a6c1b JW |
51 | PGSCAN_ANON, |
52 | PGSCAN_FILE, | |
53 | PGSTEAL_ANON, | |
54 | PGSTEAL_FILE, | |
f042e707 AM |
55 | #ifdef CONFIG_NUMA |
56 | PGSCAN_ZONE_RECLAIM_FAILED, | |
57 | #endif | |
904249aa | 58 | PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, |
f042e707 | 59 | KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, |
7cc30fcf | 60 | PAGEOUTRUN, PGROTATED, |
5509a5d2 | 61 | DROP_PAGECACHE, DROP_SLAB, |
8e675f7a | 62 | OOM_KILL, |
03c5a6e1 MG |
63 | #ifdef CONFIG_NUMA_BALANCING |
64 | NUMA_PTE_UPDATES, | |
72403b4a | 65 | NUMA_HUGE_PTE_UPDATES, |
03c5a6e1 MG |
66 | NUMA_HINT_FAULTS, |
67 | NUMA_HINT_FAULTS_LOCAL, | |
68 | NUMA_PAGE_MIGRATE, | |
69 | #endif | |
5647bc29 MG |
70 | #ifdef CONFIG_MIGRATION |
71 | PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, | |
1a5bae25 AK |
72 | THP_MIGRATION_SUCCESS, |
73 | THP_MIGRATION_FAIL, | |
74 | THP_MIGRATION_SPLIT, | |
5647bc29 | 75 | #endif |
f042e707 | 76 | #ifdef CONFIG_COMPACTION |
397487db MG |
77 | COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED, |
78 | COMPACTISOLATED, | |
f042e707 | 79 | COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, |
698b1b30 | 80 | KCOMPACTD_WAKE, |
7f354a54 | 81 | KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED, |
f042e707 AM |
82 | #endif |
83 | #ifdef CONFIG_HUGETLB_PAGE | |
84 | HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, | |
bbb26920 MK |
85 | #endif |
86 | #ifdef CONFIG_CMA | |
87 | CMA_ALLOC_SUCCESS, | |
88 | CMA_ALLOC_FAIL, | |
f042e707 AM |
89 | #endif |
90 | UNEVICTABLE_PGCULLED, /* culled to noreclaim list */ | |
91 | UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */ | |
92 | UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */ | |
93 | UNEVICTABLE_PGMLOCKED, | |
94 | UNEVICTABLE_PGMUNLOCKED, | |
95 | UNEVICTABLE_PGCLEARED, /* on COW, page truncate */ | |
96 | UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */ | |
f042e707 AM |
97 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
98 | THP_FAULT_ALLOC, | |
99 | THP_FAULT_FALLBACK, | |
85b9f46e | 100 | THP_FAULT_FALLBACK_CHARGE, |
f042e707 AM |
101 | THP_COLLAPSE_ALLOC, |
102 | THP_COLLAPSE_ALLOC_FAILED, | |
95ecedcd | 103 | THP_FILE_ALLOC, |
dcdf11ee | 104 | THP_FILE_FALLBACK, |
85b9f46e | 105 | THP_FILE_FALLBACK_CHARGE, |
95ecedcd | 106 | THP_FILE_MAPPED, |
122afea9 KS |
107 | THP_SPLIT_PAGE, |
108 | THP_SPLIT_PAGE_FAILED, | |
f9719a03 | 109 | THP_DEFERRED_SPLIT_PAGE, |
122afea9 | 110 | THP_SPLIT_PMD, |
e9ea874a YY |
111 | THP_SCAN_EXCEED_NONE_PTE, |
112 | THP_SCAN_EXCEED_SWAP_PTE, | |
113 | THP_SCAN_EXCEED_SHARED_PTE, | |
ce9311cf YX |
114 | #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD |
115 | THP_SPLIT_PUD, | |
116 | #endif | |
d8a8e1f0 KS |
117 | THP_ZERO_PAGE_ALLOC, |
118 | THP_ZERO_PAGE_ALLOC_FAILED, | |
225311a4 | 119 | THP_SWPOUT, |
fe490cc0 | 120 | THP_SWPOUT_FALLBACK, |
f042e707 | 121 | #endif |
09316c09 KK |
122 | #ifdef CONFIG_MEMORY_BALLOON |
123 | BALLOON_INFLATE, | |
124 | BALLOON_DEFLATE, | |
125 | #ifdef CONFIG_BALLOON_COMPACTION | |
126 | BALLOON_MIGRATE, | |
127 | #endif | |
128 | #endif | |
ec659934 | 129 | #ifdef CONFIG_DEBUG_TLBFLUSH |
9824cf97 DH |
130 | NR_TLB_REMOTE_FLUSH, /* cpu tried to flush others' tlbs */ |
131 | NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */ | |
132 | NR_TLB_LOCAL_FLUSH_ALL, | |
133 | NR_TLB_LOCAL_FLUSH_ONE, | |
ec659934 | 134 | #endif /* CONFIG_DEBUG_TLBFLUSH */ |
cbc65df2 HY |
135 | #ifdef CONFIG_SWAP |
136 | SWAP_RA, | |
137 | SWAP_RA_HIT, | |
4d45c3af YY |
138 | #ifdef CONFIG_KSM |
139 | KSM_SWPIN_COPY, | |
140 | #endif | |
575299ea | 141 | #endif |
94bfe85b YY |
142 | #ifdef CONFIG_KSM |
143 | COW_KSM, | |
144 | #endif | |
f6498b77 JW |
145 | #ifdef CONFIG_ZSWAP |
146 | ZSWPIN, | |
147 | ZSWPOUT, | |
148 | #endif | |
575299ea S |
149 | #ifdef CONFIG_X86 |
150 | DIRECT_MAP_LEVEL2_SPLIT, | |
151 | DIRECT_MAP_LEVEL3_SPLIT, | |
52f23865 SB |
152 | #endif |
153 | #ifdef CONFIG_PER_VMA_LOCK_STATS | |
154 | VMA_LOCK_SUCCESS, | |
155 | VMA_LOCK_ABORT, | |
156 | VMA_LOCK_RETRY, | |
157 | VMA_LOCK_MISS, | |
4f115147 | 158 | #endif |
f042e707 AM |
159 | NR_VM_EVENT_ITEMS |
160 | }; | |
161 | ||
95ecedcd KS |
162 | #ifndef CONFIG_TRANSPARENT_HUGEPAGE |
163 | #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; }) | |
dcdf11ee | 164 | #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; }) |
85b9f46e | 165 | #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; }) |
95ecedcd KS |
166 | #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; }) |
167 | #endif | |
168 | ||
f042e707 | 169 | #endif /* VM_EVENT_ITEM_H_INCLUDED */ |