| 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 | PGREFILL, | 
|---|
| 42 | PGREUSE, | 
|---|
| 43 | PGSTEAL_KSWAPD, | 
|---|
| 44 | PGSTEAL_DIRECT, | 
|---|
| 45 | PGSTEAL_KHUGEPAGED, | 
|---|
| 46 | PGSTEAL_PROACTIVE, | 
|---|
| 47 | PGSCAN_KSWAPD, | 
|---|
| 48 | PGSCAN_DIRECT, | 
|---|
| 49 | PGSCAN_KHUGEPAGED, | 
|---|
| 50 | PGSCAN_PROACTIVE, | 
|---|
| 51 | PGSCAN_DIRECT_THROTTLE, | 
|---|
| 52 | PGSCAN_ANON, | 
|---|
| 53 | PGSCAN_FILE, | 
|---|
| 54 | PGSTEAL_ANON, | 
|---|
| 55 | PGSTEAL_FILE, | 
|---|
| 56 | #ifdef CONFIG_NUMA | 
|---|
| 57 | PGSCAN_ZONE_RECLAIM_SUCCESS, | 
|---|
| 58 | PGSCAN_ZONE_RECLAIM_FAILED, | 
|---|
| 59 | #endif | 
|---|
| 60 | PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, | 
|---|
| 61 | KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, | 
|---|
| 62 | PAGEOUTRUN, PGROTATED, | 
|---|
| 63 | DROP_PAGECACHE, DROP_SLAB, | 
|---|
| 64 | OOM_KILL, | 
|---|
| 65 | #ifdef CONFIG_NUMA_BALANCING | 
|---|
| 66 | NUMA_PTE_UPDATES, | 
|---|
| 67 | NUMA_HUGE_PTE_UPDATES, | 
|---|
| 68 | NUMA_HINT_FAULTS, | 
|---|
| 69 | NUMA_HINT_FAULTS_LOCAL, | 
|---|
| 70 | NUMA_PAGE_MIGRATE, | 
|---|
| 71 | #endif | 
|---|
| 72 | #ifdef CONFIG_MIGRATION | 
|---|
| 73 | PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, | 
|---|
| 74 | THP_MIGRATION_SUCCESS, | 
|---|
| 75 | THP_MIGRATION_FAIL, | 
|---|
| 76 | THP_MIGRATION_SPLIT, | 
|---|
| 77 | #endif | 
|---|
| 78 | #ifdef CONFIG_COMPACTION | 
|---|
| 79 | COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED, | 
|---|
| 80 | COMPACTISOLATED, | 
|---|
| 81 | COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, | 
|---|
| 82 | KCOMPACTD_WAKE, | 
|---|
| 83 | KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED, | 
|---|
| 84 | #endif | 
|---|
| 85 | #ifdef CONFIG_HUGETLB_PAGE | 
|---|
| 86 | HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, | 
|---|
| 87 | #endif | 
|---|
| 88 | #ifdef CONFIG_CMA | 
|---|
| 89 | CMA_ALLOC_SUCCESS, | 
|---|
| 90 | CMA_ALLOC_FAIL, | 
|---|
| 91 | #endif | 
|---|
| 92 | UNEVICTABLE_PGCULLED,	/* culled to noreclaim list */ | 
|---|
| 93 | UNEVICTABLE_PGSCANNED,	/* scanned for reclaimability */ | 
|---|
| 94 | UNEVICTABLE_PGRESCUED,	/* rescued from noreclaim list */ | 
|---|
| 95 | UNEVICTABLE_PGMLOCKED, | 
|---|
| 96 | UNEVICTABLE_PGMUNLOCKED, | 
|---|
| 97 | UNEVICTABLE_PGCLEARED,	/* on COW, page truncate */ | 
|---|
| 98 | UNEVICTABLE_PGSTRANDED,	/* unable to isolate on unlock */ | 
|---|
| 99 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 
|---|
| 100 | THP_FAULT_ALLOC, | 
|---|
| 101 | THP_FAULT_FALLBACK, | 
|---|
| 102 | THP_FAULT_FALLBACK_CHARGE, | 
|---|
| 103 | THP_COLLAPSE_ALLOC, | 
|---|
| 104 | THP_COLLAPSE_ALLOC_FAILED, | 
|---|
| 105 | THP_FILE_ALLOC, | 
|---|
| 106 | THP_FILE_FALLBACK, | 
|---|
| 107 | THP_FILE_FALLBACK_CHARGE, | 
|---|
| 108 | THP_FILE_MAPPED, | 
|---|
| 109 | THP_SPLIT_PAGE, | 
|---|
| 110 | THP_SPLIT_PAGE_FAILED, | 
|---|
| 111 | THP_DEFERRED_SPLIT_PAGE, | 
|---|
| 112 | THP_UNDERUSED_SPLIT_PAGE, | 
|---|
| 113 | THP_SPLIT_PMD, | 
|---|
| 114 | THP_SCAN_EXCEED_NONE_PTE, | 
|---|
| 115 | THP_SCAN_EXCEED_SWAP_PTE, | 
|---|
| 116 | THP_SCAN_EXCEED_SHARED_PTE, | 
|---|
| 117 | #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD | 
|---|
| 118 | THP_SPLIT_PUD, | 
|---|
| 119 | #endif | 
|---|
| 120 | THP_ZERO_PAGE_ALLOC, | 
|---|
| 121 | THP_ZERO_PAGE_ALLOC_FAILED, | 
|---|
| 122 | THP_SWPOUT, | 
|---|
| 123 | THP_SWPOUT_FALLBACK, | 
|---|
| 124 | #endif | 
|---|
| 125 | #ifdef CONFIG_MEMORY_BALLOON | 
|---|
| 126 | BALLOON_INFLATE, | 
|---|
| 127 | BALLOON_DEFLATE, | 
|---|
| 128 | #ifdef CONFIG_BALLOON_COMPACTION | 
|---|
| 129 | BALLOON_MIGRATE, | 
|---|
| 130 | #endif | 
|---|
| 131 | #endif | 
|---|
| 132 | #ifdef CONFIG_DEBUG_TLBFLUSH | 
|---|
| 133 | NR_TLB_REMOTE_FLUSH,	/* cpu tried to flush others' tlbs */ | 
|---|
| 134 | NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */ | 
|---|
| 135 | NR_TLB_LOCAL_FLUSH_ALL, | 
|---|
| 136 | NR_TLB_LOCAL_FLUSH_ONE, | 
|---|
| 137 | #endif /* CONFIG_DEBUG_TLBFLUSH */ | 
|---|
| 138 | #ifdef CONFIG_SWAP | 
|---|
| 139 | SWAP_RA, | 
|---|
| 140 | SWAP_RA_HIT, | 
|---|
| 141 | SWPIN_ZERO, | 
|---|
| 142 | SWPOUT_ZERO, | 
|---|
| 143 | #ifdef CONFIG_KSM | 
|---|
| 144 | KSM_SWPIN_COPY, | 
|---|
| 145 | #endif | 
|---|
| 146 | #endif | 
|---|
| 147 | #ifdef CONFIG_KSM | 
|---|
| 148 | COW_KSM, | 
|---|
| 149 | #endif | 
|---|
| 150 | #ifdef CONFIG_ZSWAP | 
|---|
| 151 | ZSWPIN, | 
|---|
| 152 | ZSWPOUT, | 
|---|
| 153 | ZSWPWB, | 
|---|
| 154 | #endif | 
|---|
| 155 | #ifdef CONFIG_X86 | 
|---|
| 156 | DIRECT_MAP_LEVEL2_SPLIT, | 
|---|
| 157 | DIRECT_MAP_LEVEL3_SPLIT, | 
|---|
| 158 | DIRECT_MAP_LEVEL2_COLLAPSE, | 
|---|
| 159 | DIRECT_MAP_LEVEL3_COLLAPSE, | 
|---|
| 160 | #endif | 
|---|
| 161 | #ifdef CONFIG_PER_VMA_LOCK_STATS | 
|---|
| 162 | VMA_LOCK_SUCCESS, | 
|---|
| 163 | VMA_LOCK_ABORT, | 
|---|
| 164 | VMA_LOCK_RETRY, | 
|---|
| 165 | VMA_LOCK_MISS, | 
|---|
| 166 | #endif | 
|---|
| 167 | #ifdef CONFIG_DEBUG_STACK_USAGE | 
|---|
| 168 | KSTACK_1K, | 
|---|
| 169 | #if THREAD_SIZE > 1024 | 
|---|
| 170 | KSTACK_2K, | 
|---|
| 171 | #endif | 
|---|
| 172 | #if THREAD_SIZE > 2048 | 
|---|
| 173 | KSTACK_4K, | 
|---|
| 174 | #endif | 
|---|
| 175 | #if THREAD_SIZE > 4096 | 
|---|
| 176 | KSTACK_8K, | 
|---|
| 177 | #endif | 
|---|
| 178 | #if THREAD_SIZE > 8192 | 
|---|
| 179 | KSTACK_16K, | 
|---|
| 180 | #endif | 
|---|
| 181 | #if THREAD_SIZE > 16384 | 
|---|
| 182 | KSTACK_32K, | 
|---|
| 183 | #endif | 
|---|
| 184 | #if THREAD_SIZE > 32768 | 
|---|
| 185 | KSTACK_64K, | 
|---|
| 186 | #endif | 
|---|
| 187 | #if THREAD_SIZE > 65536 | 
|---|
| 188 | KSTACK_REST, | 
|---|
| 189 | #endif | 
|---|
| 190 | #endif /* CONFIG_DEBUG_STACK_USAGE */ | 
|---|
| 191 | NR_VM_EVENT_ITEMS | 
|---|
| 192 | }; | 
|---|
| 193 |  | 
|---|
| 194 | #ifndef CONFIG_TRANSPARENT_HUGEPAGE | 
|---|
| 195 | #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; }) | 
|---|
| 196 | #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; }) | 
|---|
| 197 | #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; }) | 
|---|
| 198 | #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; }) | 
|---|
| 199 | #endif | 
|---|
| 200 |  | 
|---|
| 201 | #endif		/* VM_EVENT_ITEM_H_INCLUDED */ | 
|---|
| 202 |  | 
|---|