函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\percpu.c Create Date:2022-07-27 15:52:01
Last Modify:2022-05-23 13:52:24 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:释放内存

函数原型:void free_percpu(void __percpu *ptr)

返回类型:void

参数:

类型参数名称
void __percpu *ptr
1961  bool need_balance = false
1963  如果非ptr则返回
1966  kmemleak_free_percpu(ptr)
1968  addr等于__pcpu_ptr_to_addr(ptr)
1970  spin_lock_irqsave( & pcpu_lock, flags)
1972  chunk等于pcpu_chunk_addr_search - determine chunk containing specified address*@addr: address for which the chunk needs to be determined.* This is an internal function that handles all but static allocations.
1973  off等于addr base address of this chunk
1975  pcpu_free_area - frees the corresponding offset*@chunk: chunk of interest*@off: addr offset into chunk* This function determines the size of an allocation to free using* the boundary bitmap and clears the allocation map.
1978  如果 free bytes in the chunk 恒等于pcpu_unit_size
1981  list_for_each_entry - iterate over list of given type*@pos: the type * to use as a loop cursor.*@head: the head for your list.*@member: the name of the list_head within the struct.(pos, & pcpu_slot[pcpu_nr_slots - 1], list)
1982  如果pos不等于chunk
1983  need_balance = true
1984  退出
1988  trace_percpu_free_percpu( base address of this chunk , off, ptr)
1990  spin_unlock_irqrestore( & pcpu_lock, flags)
1992  如果need_balancepcpu_schedule_balance_work()
调用者
名称描述
pcpu_alloc_test
percpu_counter_destroy
sbitmap_queue_init_node
rcu_free_wq
__free_domain_allocs
__sdt_free
cpuacct_css_allocCreate a new CPU accounting group
cpuacct_css_freeDestroy an existing CPU accounting group
psi_cgroup_free
percpu_free_rwsem
irq_timings_free
irq_timings_alloc
cleanup_srcu_structleanup_srcu_struct - deconstruct a sleep-RCU structure*@ssp: structure to clean up.* Must invoke this after you are finished using a given srcu_struct that* was initialized via init_srcu_struct(), else you leak memory.
smpcfd_dead_cpu
cgroup_rstat_exit
free_trace_buffer
graph_trace_close
perf_trace_event_reg
perf_trace_event_unreg
free_trace_kprobe
uprobe_buffer_init
uprobe_buffer_disable
__bpf_prog_free
htab_free_elems
htab_elem_free
htab_map_freeCalled when map->refcnt goes to zero, either from workqueue or from syscall
bpf_array_free_percpu
pcpu_freelist_destroy
bpf_lru_destroy
free_percpu_cgroup_storage_rcu
dev_map_init_map
dev_map_free
__dev_map_entry_free
__dev_map_alloc_node
cpu_map_alloc
__cpu_map_entry_alloc
__cpu_map_entry_free
cpu_map_free
xsk_map_free
free_pmu_context
perf_pmu_register
perf_pmu_unregister
unregister_wide_hw_breakpointregister_wide_hw_breakpoint - unregister a wide breakpoint in the kernel*@cpu_events: the per cpu set of events to unregister
padata_alloc_pdAllocate and initialize the internal cpumask dependend resources.
padata_free_pd
zone_pcp_reset
SYSCALL_DEFINE1
SYSCALL_DEFINE2
zswap_pool_create
zswap_pool_destroy
__kmem_cache_release
__do_tune_cpucacheAlways called with the slab_mutex held
__kmem_cache_release
rollback_node_hotadd
alloc_mem_cgroup_per_node_info
free_mem_cgroup_per_node_info
__mem_cgroup_free
z3fold_create_poolz3fold_create_pool() - create a new z3fold pool*@name: pool name*@gfp: gfp flags when allocating the z3fold pool structure*@ops: user-defined operations for the z3fold pool* Return: pointer to the new z3fold pool or NULL if the metadata allocation* failed.
blk_mq_sysfs_release
blkg_freelkg_free - free a blkg*@blkg: blkg to free* Free @blkg which may be partially allocated.
blk_throtl_init
blk_throtl_exit
iolatency_pd_free
ioc_rqos_exit
blk_iocost_init
kyber_queue_data_alloc
kyber_exit_sched
ioctx_allocx_alloc* Allocates and initializes an ioctx. Returns an ERR_PTR if it failed.
percpu_ref_exitpercpu_ref_exit - undo percpu_ref_init()*@ref: percpu_ref to exit* This function exits @ref
msrs_free
ffh_cstate_exit
schedule_on_each_cpuschedule_on_each_cpu - execute a function synchronously on each online CPU*@func: the function to call* schedule_on_each_cpu() executes @func on each online CPU using the* system workqueue and blocks until all CPUs have completed.
sbitmap_queue_freesbitmap_queue_free() - Free memory used by a &struct sbitmap_queue.*@sbq: Bitmap queue to free.
blk_stat_free_callback_rcu
free_ioctx_ioctx() should be RCU delayed to synchronize against the RCU* protected lookup_ioctx() and also needs process context to call* aio_free_ring(). Use rcu_work.