1 /* SPDX-License-Identifier: GPL-2.0 */ 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 18 #define HIGHMEM_ZONE(xx) xx##_HIGH, 19 #else 20 #define HIGHMEM_ZONE(xx) 21 #endif 22 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) 31 32 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, 33 FOR_ALL_ZONES(PGALLOC) 34 FOR_ALL_ZONES(ALLOCSTALL) 35 FOR_ALL_ZONES(PGSCAN_SKIP) 36 PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE, 37 PGFAULT, PGMAJFAULT, 38 PGLAZYFREED, 39 PGREFILL, 40 PGREUSE, 41 PGSTEAL_KSWAPD, 42 PGSTEAL_DIRECT, 43 PGSTEAL_KHUGEPAGED, 44 PGSTEAL_PROACTIVE, 45 PGSCAN_KSWAPD, 46 PGSCAN_DIRECT, 47 PGSCAN_KHUGEPAGED, 48 PGSCAN_PROACTIVE, 49 PGSCAN_DIRECT_THROTTLE, 50 PGSCAN_ANON, 51 PGSCAN_FILE, 52 PGSTEAL_ANON, 53 PGSTEAL_FILE, 54 #ifdef CONFIG_NUMA 55 PGSCAN_ZONE_RECLAIM_SUCCESS, 56 PGSCAN_ZONE_RECLAIM_FAILED, 57 #endif 58 PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, 59 KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, 60 PAGEOUTRUN, PGROTATED, 61 DROP_PAGECACHE, DROP_SLAB, 62 OOM_KILL, 63 #ifdef CONFIG_NUMA_BALANCING 64 NUMA_PTE_UPDATES, 65 NUMA_HUGE_PTE_UPDATES, 66 NUMA_HINT_FAULTS, 67 NUMA_HINT_FAULTS_LOCAL, 68 NUMA_PAGE_MIGRATE, 69 NUMA_TASK_MIGRATE, 70 NUMA_TASK_SWAP, 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