|
| #define | MAX_PAGE_ORDER 10 |
| |
| #define | MAX_ORDER_NR_PAGES (1 << MAX_PAGE_ORDER) |
| |
| #define | IS_MAX_ORDER_ALIGNED(pfn) IS_ALIGNED(pfn, MAX_ORDER_NR_PAGES) |
| |
| #define | NR_PAGE_ORDERS (MAX_PAGE_ORDER + 1) |
| |
| #define | PAGE_BLOCK_MAX_ORDER MAX_PAGE_ORDER |
| |
| #define | PAGE_ALLOC_COSTLY_ORDER 3 |
| |
| #define | MAX_FOLIO_ORDER MAX_PAGE_ORDER |
| |
| #define | MAX_FOLIO_NR_PAGES (1UL << MAX_FOLIO_ORDER) |
| |
| #define | MAX_FOLIO_VMEMMAP_ALIGN |
| |
| #define | VMEMMAP_TAIL_MIN_ORDER (ilog2(2 * PAGE_SIZE / sizeof(struct page))) |
| |
| #define | __NR_VMEMMAP_TAILS (MAX_FOLIO_ORDER - VMEMMAP_TAIL_MIN_ORDER + 1) |
| |
| #define | NR_VMEMMAP_TAILS (__NR_VMEMMAP_TAILS > 0 ? __NR_VMEMMAP_TAILS : 0) |
| |
| #define | is_migrate_cma(migratetype) false |
| |
| #define | is_migrate_cma_page(_page) false |
| |
| #define | is_migrate_cma_folio(folio, pfn) false |
| |
| #define | for_each_free_list(list, zone, order) |
| |
| #define | get_pageblock_migratetype(page) get_pfnblock_migratetype(page, page_to_pfn(page)) |
| |
| #define | folio_migratetype(folio) get_pageblock_migratetype(&folio->page) |
| |
| #define | NR_VM_NUMA_EVENT_ITEMS 0 |
| |
| #define | LRU_BASE 0 |
| |
| #define | LRU_ACTIVE 1 |
| |
| #define | LRU_FILE 2 |
| |
| #define | for_each_lru(lru) for (lru = 0; lru < NR_LRU_LISTS; lru++) |
| |
| #define | for_each_evictable_lru(lru) for (lru = 0; lru <= LRU_ACTIVE_FILE; lru++) |
| |
| #define | WORKINGSET_ANON 0 |
| |
| #define | WORKINGSET_FILE 1 |
| |
| #define | ANON_AND_FILE 2 |
| |
| #define | MIN_NR_GENS 2U |
| |
| #define | MAX_NR_GENS 4U |
| |
| #define | MAX_NR_TIERS 4U |
| |
| #define | LRU_GEN_MASK ((BIT(LRU_GEN_WIDTH) - 1) << LRU_GEN_PGOFF) |
| |
| #define | LRU_REFS_MASK ((BIT(LRU_REFS_WIDTH) - 1) << LRU_REFS_PGOFF) |
| |
| #define | LRU_REFS_FLAGS (LRU_REFS_MASK | BIT(PG_referenced)) |
| |
| #define | ISOLATE_ASYNC_MIGRATE ((__force isolate_mode_t)0x4) |
| |
| #define | ISOLATE_UNEVICTABLE ((__force isolate_mode_t)0x8) |
| |
| #define | NR_PCP_THP 0 |
| |
| #define | NR_LOWORDER_PCP_LISTS (MIGRATE_PCPTYPES * (PAGE_ALLOC_COSTLY_ORDER + 1)) |
| |
| #define | NR_PCP_LISTS (NR_LOWORDER_PCP_LISTS + NR_PCP_THP) |
| |
| #define | PCPF_PREV_FREE_HIGH_ORDER BIT(0) |
| |
| #define | PCPF_FREE_HIGH_BATCH BIT(1) |
| |
| #define | ASYNC_AND_SYNC 2 |
| |
| #define | SECTIONS_PGOFF ((sizeof(unsigned long)*8) - SECTIONS_WIDTH) |
| |
| #define | NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH) |
| |
| #define | ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH) |
| |
| #define | LAST_CPUPID_PGOFF (ZONES_PGOFF - LAST_CPUPID_WIDTH) |
| |
| #define | KASAN_TAG_PGOFF (LAST_CPUPID_PGOFF - KASAN_TAG_WIDTH) |
| |
| #define | LRU_GEN_PGOFF (KASAN_TAG_PGOFF - LRU_GEN_WIDTH) |
| |
| #define | LRU_REFS_PGOFF (LRU_GEN_PGOFF - LRU_REFS_WIDTH) |
| |
| #define | SECTIONS_PGSHIFT (SECTIONS_PGOFF * (SECTIONS_WIDTH != 0)) |
| |
| #define | NODES_PGSHIFT (NODES_PGOFF * (NODES_WIDTH != 0)) |
| |
| #define | ZONES_PGSHIFT (ZONES_PGOFF * (ZONES_WIDTH != 0)) |
| |
| #define | LAST_CPUPID_PGSHIFT (LAST_CPUPID_PGOFF * (LAST_CPUPID_WIDTH != 0)) |
| |
| #define | KASAN_TAG_PGSHIFT (KASAN_TAG_PGOFF * (KASAN_TAG_WIDTH != 0)) |
| |
| #define | ZONEID_SHIFT (NODES_SHIFT + ZONES_SHIFT) |
| |
| #define | ZONEID_PGOFF |
| |
| #define | ZONEID_PGSHIFT (ZONEID_PGOFF * (ZONEID_SHIFT != 0)) |
| |
| #define | ZONES_MASK ((1UL << ZONES_WIDTH) - 1) |
| |
| #define | NODES_MASK ((1UL << NODES_WIDTH) - 1) |
| |
| #define | SECTIONS_MASK ((1UL << SECTIONS_WIDTH) - 1) |
| |
| #define | LAST_CPUPID_MASK ((1UL << LAST_CPUPID_SHIFT) - 1) |
| |
| #define | KASAN_TAG_MASK ((1UL << KASAN_TAG_WIDTH) - 1) |
| |
| #define | ZONEID_MASK ((1UL << ZONEID_SHIFT) - 1) |
| |
| #define | DEF_PRIORITY 12 |
| |
| #define | MAX_ZONES_PER_ZONELIST (MAX_NUMNODES * MAX_NR_ZONES) |
| |
| #define | node_present_pages(nid) (NODE_DATA(nid)->node_present_pages) |
| |
| #define | node_spanned_pages(nid) (NODE_DATA(nid)->node_spanned_pages) |
| |
| #define | node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) |
| |
| #define | node_end_pfn(nid) pgdat_end_pfn(NODE_DATA(nid)) |
| |
| #define | zone_idx(zone) ((zone) - (zone)->zone_pgdat->node_zones) |
| |
| #define | for_each_online_pgdat(pgdat) |
| |
| #define | for_each_zone(zone) |
| |
| #define | for_each_populated_zone(zone) |
| |
| #define | for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) |
| |
| #define | for_next_zone_zonelist_nodemask(zone, z, highidx, nodemask) |
| |
| #define | for_each_zone_zonelist(zone, z, zlist, highidx) for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, NULL) |
| |
| #define | sparse_vmemmap_init_nid_early(_nid) do {} while (0) |
| |
| #define | sparse_vmemmap_init_nid_late(_nid) do {} while (0) |
| |
| #define | pfn_in_present_section pfn_valid |
| |
| #define | for_each_valid_pfn(_pfn, _start_pfn, _end_pfn) |
| |
|
| enum | migratetype {
MIGRATE_UNMOVABLE
, MIGRATE_MOVABLE
, MIGRATE_RECLAIMABLE
, MIGRATE_PCPTYPES
,
MIGRATE_HIGHATOMIC = MIGRATE_PCPTYPES
, __MIGRATE_TYPE_END = MIGRATE_HIGHATOMIC
, MIGRATE_TYPES
} |
| |
| enum | zone_stat_item {
NR_FREE_PAGES
, NR_FREE_PAGES_BLOCKS
, NR_ZONE_LRU_BASE
, NR_ZONE_INACTIVE_ANON = NR_ZONE_LRU_BASE
,
NR_ZONE_ACTIVE_ANON
, NR_ZONE_INACTIVE_FILE
, NR_ZONE_ACTIVE_FILE
, NR_ZONE_UNEVICTABLE
,
NR_ZONE_WRITE_PENDING
, NR_MLOCK
, NR_FREE_CMA_PAGES
, NR_VM_ZONE_STAT_ITEMS
} |
| |
| enum | node_stat_item {
NR_LRU_BASE
, NR_INACTIVE_ANON = NR_LRU_BASE
, NR_ACTIVE_ANON
, NR_INACTIVE_FILE
,
NR_ACTIVE_FILE
, NR_UNEVICTABLE
, NR_SLAB_RECLAIMABLE_B
, NR_SLAB_UNRECLAIMABLE_B
,
NR_ISOLATED_ANON
, NR_ISOLATED_FILE
, WORKINGSET_NODES
, WORKINGSET_REFAULT_BASE
,
WORKINGSET_REFAULT_ANON = WORKINGSET_REFAULT_BASE
, WORKINGSET_REFAULT_FILE
, WORKINGSET_ACTIVATE_BASE
, WORKINGSET_ACTIVATE_ANON = WORKINGSET_ACTIVATE_BASE
,
WORKINGSET_ACTIVATE_FILE
, WORKINGSET_RESTORE_BASE
, WORKINGSET_RESTORE_ANON = WORKINGSET_RESTORE_BASE
, WORKINGSET_RESTORE_FILE
,
WORKINGSET_NODERECLAIM
, NR_ANON_MAPPED
, NR_FILE_MAPPED
, NR_FILE_PAGES
,
NR_FILE_DIRTY
, NR_WRITEBACK
, NR_SHMEM
, NR_SHMEM_THPS
,
NR_SHMEM_PMDMAPPED
, NR_FILE_THPS
, NR_FILE_PMDMAPPED
, NR_ANON_THPS
,
NR_VMSCAN_WRITE
, NR_VMSCAN_IMMEDIATE
, NR_DIRTIED
, NR_WRITTEN
,
NR_THROTTLED_WRITTEN
, NR_KERNEL_MISC_RECLAIMABLE
, NR_FOLL_PIN_ACQUIRED
, NR_FOLL_PIN_RELEASED
,
NR_VMALLOC
, NR_KERNEL_STACK_KB
, NR_PAGETABLE
, NR_SECONDARY_PAGETABLE
,
PGDEMOTE_KSWAPD
, PGDEMOTE_DIRECT
, PGDEMOTE_KHUGEPAGED
, PGDEMOTE_PROACTIVE
,
PGSTEAL_KSWAPD
, PGSTEAL_DIRECT
, PGSTEAL_KHUGEPAGED
, PGSTEAL_PROACTIVE
,
PGSTEAL_ANON
, PGSTEAL_FILE
, PGSCAN_KSWAPD
, PGSCAN_DIRECT
,
PGSCAN_KHUGEPAGED
, PGSCAN_PROACTIVE
, PGSCAN_ANON
, PGSCAN_FILE
,
PGREFILL
, NR_BALLOON_PAGES
, NR_KERNEL_FILE_PAGES
, NR_GPU_ACTIVE
,
NR_GPU_RECLAIM
, NR_VM_NODE_STAT_ITEMS
} |
| |
| enum | lru_list {
LRU_INACTIVE_ANON = LRU_BASE
, LRU_ACTIVE_ANON = LRU_BASE + LRU_ACTIVE
, LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE
, LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE
,
LRU_UNEVICTABLE
, NR_LRU_LISTS
} |
| |
| enum | vmscan_throttle_state {
VMSCAN_THROTTLE_WRITEBACK
, VMSCAN_THROTTLE_ISOLATED
, VMSCAN_THROTTLE_NOPROGRESS
, VMSCAN_THROTTLE_CONGESTED
,
NR_VMSCAN_THROTTLE
} |
| |
| enum | lruvec_flags { LRUVEC_CGROUP_CONGESTED
, LRUVEC_NODE_CONGESTED
} |
| |
| enum | zone_watermarks {
WMARK_MIN
, WMARK_LOW
, WMARK_HIGH
, WMARK_PROMO
,
NR_WMARK
} |
| |
| enum | zone_type { ZONE_NORMAL
, ZONE_MOVABLE
, __MAX_NR_ZONES
} |
| |
| enum | pgdat_flags { PGDAT_WRITEBACK
, PGDAT_RECLAIM_LOCKED
} |
| |
| enum | zone_flags { ZONE_BOOSTED_WATERMARK
, ZONE_RECLAIM_ACTIVE
, ZONE_BELOW_HIGH
} |
| |
| enum | { ZONELIST_FALLBACK
, MAX_ZONELISTS
} |
| |
| enum | kswapd_clear_hopeless_reason { KSWAPD_CLEAR_HOPELESS_OTHER = 0
, KSWAPD_CLEAR_HOPELESS_KSWAPD
, KSWAPD_CLEAR_HOPELESS_DIRECT
, KSWAPD_CLEAR_HOPELESS_PCP
} |
| |
| enum | meminit_context { MEMINIT_EARLY
, MEMINIT_HOTPLUG
} |
| |
|
| void | build_all_zonelists (pg_data_t *pgdat) |
| |
| bool | __zone_watermark_ok (struct zone *z, unsigned int order, unsigned long mark, int highest_zoneidx, unsigned int alloc_flags, long free_pages) |
| |
| bool | zone_watermark_ok (struct zone *z, unsigned int order, unsigned long mark, int highest_zoneidx, unsigned int alloc_flags) |
| |
| void | wakeup_kswapd (struct zone *zone, gfp_t gfp_mask, int order, enum zone_type highest_zoneidx) |
| |
| void | kswapd_try_clear_hopeless (struct pglist_data *pgdat, unsigned int order, int highest_zoneidx) |
| |
| void | kswapd_clear_hopeless (pg_data_t *pgdat, enum kswapd_clear_hopeless_reason reason) |
| |
| bool | kswapd_test_hopeless (pg_data_t *pgdat) |
| |
| void | init_currently_empty_zone (struct zone *zone, unsigned long start_pfn, unsigned long size) |
| |
| void | lruvec_init (struct lruvec *lruvec) |
| |
| bool | has_managed_zone (enum zone_type zone) |
| |
| struct pglist_data * | first_online_pgdat (void) |
| |
| struct pglist_data * | next_online_pgdat (struct pglist_data *pgdat) |
| |
| struct zone * | next_zone (struct zone *zone) |
| |
| struct zoneref * | __next_zones_zonelist (struct zoneref *z, enum zone_type highest_zoneidx, nodemask_t *nodes) |
| |