Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/percpu.c pcpu_alloc_area() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->bound_map 4096-ptr_max
PARAM_VALUE 1 oslot 0-31
DATA_SOURCE 0 chunk $0
DATA_SOURCE 1 oslot r pcpu_chunk_slot
PREEMPT_ADD
NOCHECK_CALL
LOCK2 flags
LOCK2 global &pcpu_lock
HALF_LOCKED2 global &pcpu_alloc_mutex

mm/percpu.c pcpu_alloc_noprof() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->alloc_map 1-u64max
PARAM_VALUE 0 chunk->bound_map 1-u64max
PARAM_VALUE 0 chunk->chunk_md.first_free 0
PARAM_VALUE 0 chunk->chunk_md.scan_hint 0
PARAM_VALUE 0 chunk->data 4096-ptr_max
PARAM_VALUE 0 chunk->list.next 4096-ptr_max
PARAM_VALUE 0 chunk->list.next->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->prev 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks->first_free 0
PARAM_VALUE 0 chunk->md_blocks->scan_hint 0
PARAM_VALUE 1 oslot (-1)
BUF_SIZE 0 chunk s32min-s32max
DATA_SOURCE 0 chunk r pcpu_create_chunk
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 flags
LOCK2 global &pcpu_alloc_mutex
LOCK2 global &pcpu_lock

mm/percpu.c pcpu_balance_populated() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->alloc_map 1-u64max
PARAM_VALUE 0 chunk->bound_map 1-u64max
PARAM_VALUE 0 chunk->chunk_md.first_free 0
PARAM_VALUE 0 chunk->chunk_md.scan_hint 0
PARAM_VALUE 0 chunk->data 4096-ptr_max
PARAM_VALUE 0 chunk->list.next 4096-ptr_max
PARAM_VALUE 0 chunk->list.next->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->prev 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks->first_free 0
PARAM_VALUE 0 chunk->md_blocks->scan_hint 0
PARAM_VALUE 1 oslot (-1)
BUF_SIZE 0 chunk s32min-s32max
DATA_SOURCE 0 chunk r pcpu_create_chunk
PREEMPT_ADD
NOCHECK_CALL
LOCK2 global &pcpu_alloc_mutex
LOCK2 global &pcpu_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock

mm/percpu.c pcpu_free_area() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->alloc_map 4096-ptr_max
PARAM_VALUE 0 chunk->bound_map 4096-ptr_max
PARAM_VALUE 0 chunk->chunk_md.contig_hint (-2147483647)-s32max
PARAM_VALUE 1 oslot 0-31
CAPPED_DATA 0 chunk 1
DATA_SOURCE 0 chunk $0
DATA_SOURCE 1 oslot r pcpu_chunk_slot
PREEMPT_ADD
NOCHECK_CALL
LOCK2 flags
LOCK2 global &pcpu_lock
HALF_LOCKED2 global &pcpu_alloc_mutex

mm/percpu.c pcpu_reintegrate_chunk() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->isolated 0
PARAM_VALUE 1 oslot (-1)
CAPPED_DATA 0 chunk 1
DATA_SOURCE 0 chunk $0
PREEMPT_ADD
NOCHECK_CALL
LOCK2 global &pcpu_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &pcpu_alloc_mutex
HALF_LOCKED2 irq

mm/percpu.c pcpu_setup_first_chunk() -> pcpu_chunk_relocate()

Type Parameter Key Value
PARAM_VALUE 0 chunk 4096-ptr_max
PARAM_VALUE 0 chunk->alloc_map 1-u64max
PARAM_VALUE 0 chunk->base_addr 0,4096-u64max
PARAM_VALUE 0 chunk->bound_map 1-u64max
PARAM_VALUE 0 chunk->free_bytes 81920,114688
PARAM_VALUE 0 chunk->immutable 1
PARAM_VALUE 0 chunk->list.next 4096-ptr_max
PARAM_VALUE 0 chunk->list.next->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->next 4096-ptr_max
PARAM_VALUE 0 chunk->list.prev->prev 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks 4096-ptr_max
PARAM_VALUE 0 chunk->md_blocks->first_free 0
PARAM_VALUE 0 chunk->md_blocks->scan_hint 0
PARAM_VALUE 0 chunk->nr_pages (-524288)-524287
PARAM_VALUE 0 chunk->nr_populated (-524288)-524287
PARAM_VALUE 0 chunk->obj_exts 0
PARAM_VALUE 1 oslot (-1)
CAPPED_DATA 0 chunk 1
DATA_SOURCE 0 chunk r pcpu_alloc_first_chunk
NOCHECK_CALL
LOCK2 irq