vm_event_item.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef VM_EVENT_ITEM_H_INCLUDED
  3. #define VM_EVENT_ITEM_H_INCLUDED
  4. #ifdef CONFIG_ZONE_DMA
  5. #define DMA_ZONE(xx) xx##_DMA,
  6. #else
  7. #define DMA_ZONE(xx)
  8. #endif
  9. #ifdef CONFIG_ZONE_DMA32
  10. #define DMA32_ZONE(xx) xx##_DMA32,
  11. #else
  12. #define DMA32_ZONE(xx)
  13. #endif
  14. #ifdef CONFIG_HIGHMEM
  15. #define HIGHMEM_ZONE(xx) xx##_HIGH,
  16. #else
  17. #define HIGHMEM_ZONE(xx)
  18. #endif
  19. #ifdef CONFIG_ZONE_DEVICE
  20. #define DEVICE_ZONE(xx) xx##_DEVICE,
  21. #else
  22. #define DEVICE_ZONE(xx)
  23. #endif
  24. #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
  25. HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx)
  26. enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
  27. FOR_ALL_ZONES(PGALLOC)
  28. FOR_ALL_ZONES(ALLOCSTALL)
  29. FOR_ALL_ZONES(PGSCAN_SKIP)
  30. PGFREE, PGACTIVATE, PGDEACTIVATE, PGLAZYFREE,
  31. PGFAULT, PGMAJFAULT,
  32. PGLAZYFREED,
  33. PGREFILL,
  34. PGREUSE,
  35. PGSTEAL_KSWAPD,
  36. PGSTEAL_DIRECT,
  37. PGDEMOTE_KSWAPD,
  38. PGDEMOTE_DIRECT,
  39. PGSCAN_KSWAPD,
  40. PGSCAN_DIRECT,
  41. PGSCAN_DIRECT_THROTTLE,
  42. PGSCAN_ANON,
  43. PGSCAN_FILE,
  44. PGSTEAL_ANON,
  45. PGSTEAL_FILE,
  46. #ifdef CONFIG_NUMA
  47. PGSCAN_ZONE_RECLAIM_FAILED,
  48. #endif
  49. PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
  50. KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
  51. PAGEOUTRUN, PGROTATED,
  52. DROP_PAGECACHE, DROP_SLAB,
  53. OOM_KILL,
  54. #ifdef CONFIG_NUMA_BALANCING
  55. NUMA_PTE_UPDATES,
  56. NUMA_HUGE_PTE_UPDATES,
  57. NUMA_HINT_FAULTS,
  58. NUMA_HINT_FAULTS_LOCAL,
  59. NUMA_PAGE_MIGRATE,
  60. #endif
  61. #ifdef CONFIG_MIGRATION
  62. PGMIGRATE_SUCCESS, PGMIGRATE_FAIL,
  63. THP_MIGRATION_SUCCESS,
  64. THP_MIGRATION_FAIL,
  65. THP_MIGRATION_SPLIT,
  66. #endif
  67. #ifdef CONFIG_COMPACTION
  68. COMPACTMIGRATE_SCANNED, COMPACTFREE_SCANNED,
  69. COMPACTISOLATED,
  70. COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
  71. KCOMPACTD_WAKE,
  72. KCOMPACTD_MIGRATE_SCANNED, KCOMPACTD_FREE_SCANNED,
  73. #endif
  74. #ifdef CONFIG_HUGETLB_PAGE
  75. HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
  76. #endif
  77. #ifdef CONFIG_CMA
  78. CMA_ALLOC_SUCCESS,
  79. CMA_ALLOC_FAIL,
  80. #endif
  81. UNEVICTABLE_PGCULLED, /* culled to noreclaim list */
  82. UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */
  83. UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */
  84. UNEVICTABLE_PGMLOCKED,
  85. UNEVICTABLE_PGMUNLOCKED,
  86. UNEVICTABLE_PGCLEARED, /* on COW, page truncate */
  87. UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
  88. #ifdef CONFIG_TRANSPARENT_HUGEPAGE
  89. THP_FAULT_ALLOC,
  90. THP_FAULT_FALLBACK,
  91. THP_FAULT_FALLBACK_CHARGE,
  92. THP_COLLAPSE_ALLOC,
  93. THP_COLLAPSE_ALLOC_FAILED,
  94. THP_FILE_ALLOC,
  95. THP_FILE_FALLBACK,
  96. THP_FILE_FALLBACK_CHARGE,
  97. THP_FILE_MAPPED,
  98. THP_SPLIT_PAGE,
  99. THP_SPLIT_PAGE_FAILED,
  100. THP_DEFERRED_SPLIT_PAGE,
  101. THP_SPLIT_PMD,
  102. THP_SCAN_EXCEED_NONE_PTE,
  103. THP_SCAN_EXCEED_SWAP_PTE,
  104. THP_SCAN_EXCEED_SHARED_PTE,
  105. #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
  106. THP_SPLIT_PUD,
  107. #endif
  108. THP_ZERO_PAGE_ALLOC,
  109. THP_ZERO_PAGE_ALLOC_FAILED,
  110. THP_SWPOUT,
  111. THP_SWPOUT_FALLBACK,
  112. #endif
  113. #ifdef CONFIG_MEMORY_BALLOON
  114. BALLOON_INFLATE,
  115. BALLOON_DEFLATE,
  116. #ifdef CONFIG_BALLOON_COMPACTION
  117. BALLOON_MIGRATE,
  118. #endif
  119. #endif
  120. #ifdef CONFIG_DEBUG_TLBFLUSH
  121. NR_TLB_REMOTE_FLUSH, /* cpu tried to flush others' tlbs */
  122. NR_TLB_REMOTE_FLUSH_RECEIVED,/* cpu received ipi for flush */
  123. NR_TLB_LOCAL_FLUSH_ALL,
  124. NR_TLB_LOCAL_FLUSH_ONE,
  125. #endif /* CONFIG_DEBUG_TLBFLUSH */
  126. #ifdef CONFIG_SWAP
  127. SWAP_RA,
  128. SWAP_RA_HIT,
  129. #ifdef CONFIG_KSM
  130. KSM_SWPIN_COPY,
  131. #endif
  132. #endif
  133. #ifdef CONFIG_KSM
  134. COW_KSM,
  135. #endif
  136. #ifdef CONFIG_ZSWAP
  137. ZSWPIN,
  138. ZSWPOUT,
  139. #endif
  140. #ifdef CONFIG_X86
  141. DIRECT_MAP_LEVEL2_SPLIT,
  142. DIRECT_MAP_LEVEL3_SPLIT,
  143. #endif
  144. #ifdef CONFIG_PER_VMA_LOCK_STATS
  145. VMA_LOCK_SUCCESS,
  146. VMA_LOCK_ABORT,
  147. VMA_LOCK_RETRY,
  148. VMA_LOCK_MISS,
  149. #endif
  150. NR_VM_EVENT_ITEMS
  151. };
  152. #ifndef CONFIG_TRANSPARENT_HUGEPAGE
  153. #define THP_FILE_ALLOC ({ BUILD_BUG(); 0; })
  154. #define THP_FILE_FALLBACK ({ BUILD_BUG(); 0; })
  155. #define THP_FILE_FALLBACK_CHARGE ({ BUILD_BUG(); 0; })
  156. #define THP_FILE_MAPPED ({ BUILD_BUG(); 0; })
  157. #endif
  158. #endif /* VM_EVENT_ITEM_H_INCLUDED */