| 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 | |