Defined in 3 files as a prototype:

Defined in 2 files as a function:

Referenced in 5 files:

Smatch caller information:

mm/show_mem.c show_free_areas() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->event_lock
HALF_LOCKED2 global &kbd_event_lock
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

mm/mmzone.c next_zone() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &lock
HALF_LOCKED2 &split_debug_mutex
HALF_LOCKED2 global &device_hotplug_lock
HALF_LOCKED2 global &pcp_batch_high_lock
HALF_LOCKED2 global &pcpu_drain_mutex
HALF_LOCKED2 global &scan_mutex
HALF_LOCKED2 global &system_transition_mutex
HALF_LOCKED2 global &vm_numa_stat_lock

mm/vmstat.c cpu_vm_stats_fold() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq

mm/vmstat.c frag_next() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 1-ptr_max
DATA_SOURCE 0 pgdat $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

mm/vmstat.c frag_start() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

mm/vmstat.c refresh_cpu_vm_stats() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PARAM_VALUE 0 pgdat->per_cpu_nodestats->vm_node_stat_diff 4096-ptr_max
HALF_LOCKED2 irq

mm/vmstat.c refresh_zone_stat_thresholds() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

mm/memory-tiers.c demotion_enabled_store() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

mm/page_alloc.c calculate_totalreserve_pages() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &lock

mm/page_alloc.c has_managed_zone() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 1-u64max
PARAM_VALUE 0 pgdat->node_zones 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

mm/page_alloc.c setup_min_slab_ratio() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PARAM_VALUE 0 pgdat->min_slab_pages 0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

mm/page_alloc.c setup_min_unmapped_ratio() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PARAM_VALUE 0 pgdat->min_unmapped_pages 0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

mm/page_alloc.c setup_per_cpu_pageset() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PARAM_VALUE 0 pgdat->per_cpu_nodestats 0,4096-ptr_max
BUF_SIZE 0 pgdat->per_cpu_nodestats 70

mm/page_alloc.c setup_per_zone_lowmem_reserve() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 1-u64max
PARAM_VALUE 0 pgdat->node_zones 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

mm/memblock.c reset_all_zones_managed_pages() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 1-u64max
PARAM_VALUE 0 pgdat->node_zones 4096-u64max
LOCK2 irq

mm/memcontrol-v1.c memcg1_stat_format() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 global &oom_lock

kernel/sched/core.c reset_memory_tiering() -> next_online_pgdat()

Type Parameter Key Value
PARAM_VALUE 0 pgdat 4096-ptr_max
PARAM_VALUE 0 pgdat->nbp_th_nr_cand 0-9223372036854775807
PARAM_VALUE 0 pgdat->nbp_threshold 0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock