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 32enum 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 PGSCAN_KSWAPD, 45 PGSCAN_DIRECT, 46 PGSCAN_KHUGEPAGED, 47 PGSCAN_DIRECT_THROTTLE, 48 PGSCAN_ANON, 49 PGSCAN_FILE, 50 PGSTEAL_ANON, 51 PGSTEAL_FILE, 52#ifdef CONFIG_NUMA 53 PGSCAN_ZONE_RECLAIM_FAILED, 54#endif 55 PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, 56 KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, 57 PAGEOUTRUN, PGROTATED, 58 DROP_PAGECACHE, DROP_SLAB, 59 OOM_KILL, 60#ifdef CONFIG_NUMA_BALANCING 61 NUMA_PTE_UPDATES, 62 NUMA_HUGE_PTE_UPDATES, 63 NUMA_HINT_FAULTS, 64 NUMA_HINT_FAULTS_LOCAL, 65 NUMA_PAGE_MIGRATE, 66#endif 67#ifdef CONFIG_MIGRATION 68 PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, 69 THP_MIGRATION_SUCCESS, 70 THP_MIGRATION_FAIL, 71 THP_MIGRATION_SPLIT, 72#endif 73#ifdef CONFIG_COMPACTION 74 COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED, 75 COMPACTISOLATED, 76 COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, 77 KCOMPACTD_WAKE, 78 KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED, 79#endif 80#ifdef CONFIG_HUGETLB_PAGE 81 HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, 82#endif 83#ifdef CONFIG_CMA 84 CMA_ALLOC_SUCCESS, 85 CMA_ALLOC_FAIL, 86#endif 87 UNEVICTABLE_PGCULLED, /* culled to noreclaim list */ 88 UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */ 89 UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */ 90 UNEVICTABLE_PGMLOCKED, 91 UNEVICTABLE_PGMUNLOCKED, 92 UNEVICTABLE_PGCLEARED, /* on COW, page truncate */ 93 UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */ 94#ifdef CONFIG_TRANSPARENT_HUGEPAGE 95 THP_FAULT_ALLOC, 96 THP_FAULT_FALLBACK, 97 THP_FAULT_FALLBACK_CHARGE, 98 THP_COLLAPSE_ALLOC, 99 THP_COLLAPSE_ALLOC_FAILED, 100 THP_FILE_ALLOC, 101 THP_FILE_FALLBACK, 102 THP_FILE_FALLBACK_CHARGE, 103 THP_FILE_MAPPED, 104 THP_SPLIT_PAGE, 105 THP_SPLIT_PAGE_FAILED, 106 THP_DEFERRED_SPLIT_PAGE, 107 THP_SPLIT_PMD, 108 THP_SCAN_EXCEED_NONE_PTE, 109 THP_SCAN_EXCEED_SWAP_PTE, 110 THP_SCAN_EXCEED_SHARED_PTE, 111#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD 112 THP_SPLIT_PUD, 113#endif 114 THP_ZERO_PAGE_ALLOC, 115 THP_ZERO_PAGE_ALLOC_FAILED, 116 THP_SWPOUT, 117 THP_SWPOUT_FALLBACK, 118#endif 119#ifdef CONFIG_MEMORY_BALLOON 120 BALLOON_INFLATE, 121 BALLOON_DEFLATE, 122#ifdef CONFIG_BALLOON_COMPACTION 123 BALLOON_MIGRATE, 124#endif 125#endif 126#ifdef CONFIG_DEBUG_TLBFLUSH 127 NR_TLB_REMOTE_FLUSH, /* cpu tried to flush others' tlbs */ 128 NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */ 129 NR_TLB_LOCAL_FLUSH_ALL, 130 NR_TLB_LOCAL_FLUSH_ONE, 131#endif /* CONFIG_DEBUG_TLBFLUSH */ 132#ifdef CONFIG_SWAP 133 SWAP_RA, 134 SWAP_RA_HIT, 135#ifdef CONFIG_KSM 136 KSM_SWPIN_COPY, 137#endif 138#endif 139#ifdef CONFIG_KSM 140 COW_KSM, 141#endif 142#ifdef CONFIG_ZSWAP 143 ZSWPIN, 144 ZSWPOUT, 145 ZSWPWB, 146#endif 147#ifdef CONFIG_X86 148 DIRECT_MAP_LEVEL2_SPLIT, 149 DIRECT_MAP_LEVEL3_SPLIT, 150#endif 151#ifdef CONFIG_PER_VMA_LOCK_STATS 152 VMA_LOCK_SUCCESS, 153 VMA_LOCK_ABORT, 154 VMA_LOCK_RETRY, 155 VMA_LOCK_MISS, 156#endif 157 NR_VM_EVENT_ITEMS 158}; 159 160#ifndef CONFIG_TRANSPARENT_HUGEPAGE 161#define THP_FILE_ALLOC ({ BUILD_BUG(); 0; }) 162#define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; }) 163#define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; }) 164#define THP_FILE_MAPPED ({ BUILD_BUG(); 0; }) 165#endif 166 167#endif /* VM_EVENT_ITEM_H_INCLUDED */ 168