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