Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef VM_EVENT_ITEM_H_INCLUDED
0003 #define VM_EVENT_ITEM_H_INCLUDED
0004 
0005 #ifdef CONFIG_ZONE_DMA
0006 #define DMA_ZONE(xx) xx##_DMA,
0007 #else
0008 #define DMA_ZONE(xx)
0009 #endif
0010 
0011 #ifdef CONFIG_ZONE_DMA32
0012 #define DMA32_ZONE(xx) xx##_DMA32,
0013 #else
0014 #define DMA32_ZONE(xx)
0015 #endif
0016 
0017 #ifdef CONFIG_HIGHMEM
0018 #define HIGHMEM_ZONE(xx) xx##_HIGH,
0019 #else
0020 #define HIGHMEM_ZONE(xx)
0021 #endif
0022 
0023 #ifdef CONFIG_ZONE_DEVICE
0024 #define DEVICE_ZONE(xx) xx##_DEVICE,
0025 #else
0026 #define DEVICE_ZONE(xx)
0027 #endif
0028 
0029 #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
0030     HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx)
0031 
0032 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
0033         FOR_ALL_ZONES(PGALLOC)
0034         FOR_ALL_ZONES(ALLOCSTALL)
0035         FOR_ALL_ZONES(PGSCAN_SKIP)
0036         PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE,
0037         PGFAULT, PGMAJFAULT,
0038         PGLAZYFREED,
0039         PGREFILL,
0040         PGREUSE,
0041         PGSTEAL_KSWAPD,
0042         PGSTEAL_DIRECT,
0043         PGDEMOTE_KSWAPD,
0044         PGDEMOTE_DIRECT,
0045         PGSCAN_KSWAPD,
0046         PGSCAN_DIRECT,
0047         PGSCAN_DIRECT_THROTTLE,
0048         PGSCAN_ANON,
0049         PGSCAN_FILE,
0050         PGSTEAL_ANON,
0051         PGSTEAL_FILE,
0052 #ifdef CONFIG_NUMA
0053         PGSCAN_ZONE_RECLAIM_FAILED,
0054 #endif
0055         PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
0056         KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
0057         PAGEOUTRUN, PGROTATED,
0058         DROP_PAGECACHE, DROP_SLAB,
0059         OOM_KILL,
0060 #ifdef CONFIG_NUMA_BALANCING
0061         NUMA_PTE_UPDATES,
0062         NUMA_HUGE_PTE_UPDATES,
0063         NUMA_HINT_FAULTS,
0064         NUMA_HINT_FAULTS_LOCAL,
0065         NUMA_PAGE_MIGRATE,
0066 #endif
0067 #ifdef CONFIG_MIGRATION
0068         PGMIGRATE_SUCCESS, PGMIGRATE_FAIL,
0069         THP_MIGRATION_SUCCESS,
0070         THP_MIGRATION_FAIL,
0071         THP_MIGRATION_SPLIT,
0072 #endif
0073 #ifdef CONFIG_COMPACTION
0074         COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED,
0075         COMPACTISOLATED,
0076         COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
0077         KCOMPACTD_WAKE,
0078         KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED,
0079 #endif
0080 #ifdef CONFIG_HUGETLB_PAGE
0081         HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
0082 #endif
0083 #ifdef CONFIG_CMA
0084         CMA_ALLOC_SUCCESS,
0085         CMA_ALLOC_FAIL,
0086 #endif
0087         UNEVICTABLE_PGCULLED,   /* culled to noreclaim list */
0088         UNEVICTABLE_PGSCANNED,  /* scanned for reclaimability */
0089         UNEVICTABLE_PGRESCUED,  /* rescued from noreclaim list */
0090         UNEVICTABLE_PGMLOCKED,
0091         UNEVICTABLE_PGMUNLOCKED,
0092         UNEVICTABLE_PGCLEARED,  /* on COW, page truncate */
0093         UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
0094 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
0095         THP_FAULT_ALLOC,
0096         THP_FAULT_FALLBACK,
0097         THP_FAULT_FALLBACK_CHARGE,
0098         THP_COLLAPSE_ALLOC,
0099         THP_COLLAPSE_ALLOC_FAILED,
0100         THP_FILE_ALLOC,
0101         THP_FILE_FALLBACK,
0102         THP_FILE_FALLBACK_CHARGE,
0103         THP_FILE_MAPPED,
0104         THP_SPLIT_PAGE,
0105         THP_SPLIT_PAGE_FAILED,
0106         THP_DEFERRED_SPLIT_PAGE,
0107         THP_SPLIT_PMD,
0108         THP_SCAN_EXCEED_NONE_PTE,
0109         THP_SCAN_EXCEED_SWAP_PTE,
0110         THP_SCAN_EXCEED_SHARED_PTE,
0111 #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
0112         THP_SPLIT_PUD,
0113 #endif
0114         THP_ZERO_PAGE_ALLOC,
0115         THP_ZERO_PAGE_ALLOC_FAILED,
0116         THP_SWPOUT,
0117         THP_SWPOUT_FALLBACK,
0118 #endif
0119 #ifdef CONFIG_MEMORY_BALLOON
0120         BALLOON_INFLATE,
0121         BALLOON_DEFLATE,
0122 #ifdef CONFIG_BALLOON_COMPACTION
0123         BALLOON_MIGRATE,
0124 #endif
0125 #endif
0126 #ifdef CONFIG_DEBUG_TLBFLUSH
0127         NR_TLB_REMOTE_FLUSH,    /* cpu tried to flush others' tlbs */
0128         NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
0129         NR_TLB_LOCAL_FLUSH_ALL,
0130         NR_TLB_LOCAL_FLUSH_ONE,
0131 #endif /* CONFIG_DEBUG_TLBFLUSH */
0132 #ifdef CONFIG_DEBUG_VM_VMACACHE
0133         VMACACHE_FIND_CALLS,
0134         VMACACHE_FIND_HITS,
0135 #endif
0136 #ifdef CONFIG_SWAP
0137         SWAP_RA,
0138         SWAP_RA_HIT,
0139 #ifdef CONFIG_KSM
0140         KSM_SWPIN_COPY,
0141 #endif
0142 #endif
0143 #ifdef CONFIG_KSM
0144         COW_KSM,
0145 #endif
0146 #ifdef CONFIG_ZSWAP
0147         ZSWPIN,
0148         ZSWPOUT,
0149 #endif
0150 #ifdef CONFIG_X86
0151         DIRECT_MAP_LEVEL2_SPLIT,
0152         DIRECT_MAP_LEVEL3_SPLIT,
0153 #endif
0154         NR_VM_EVENT_ITEMS
0155 };
0156 
0157 #ifndef CONFIG_TRANSPARENT_HUGEPAGE
0158 #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; })
0159 #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; })
0160 #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; })
0161 #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; })
0162 #endif
0163 
0164 #endif      /* VM_EVENT_ITEM_H_INCLUDED */