函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\slob.c Create Date:2022-07-27 17:09:54
Last Modify:2022-05-20 09:26:42 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:kmem_cache_free

函数原型:void kmem_cache_free(struct kmem_cache *c, void *b)

返回类型:void

参数:

类型参数名称
struct kmem_cache *c
void *b
660  kmemleak_free_recursive(b, Used for retrieving partial slabs, etc. )
661  如果此条件成立可能性小(为编译器优化)(Used for retrieving partial slabs, etc. & Defer freeing slabs to RCU )则
663  slob_rcu等于bThe size of an object including metadata slob_rcu的长度
664  size等于The size of an object including metadata
665  all_rcu() - Queue an RCU callback for invocation after a grace period
666  否则
667  __kmem_cache_free(b, The size of an object including metadata )
670  trace_kmem_cache_free(_RET_IP_, b)
调用者
名称描述
radix_tree_node_rcu_free
free_task_struct
mempool_free_slab
__radix_tree_preloadLoad up this CPU's radix_tree_node buffer with sufficient objects to* ensure that the addition of a single element in the tree cannot fail
radix_tree_cpu_dead
xas_destroyxas_destroy() - Free any resources allocated during the XArray operation.*@xas: XArray operation state.* This function is now internal-only.
kmem_cache_oob
memcg_accounted_kmem_cache
kmem_cache_double_free
kmem_cache_invalid_free
do_kmem_cache_sizeTest kmem_cache with given parameters:
do_kmem_cache_rcu_persistentCheck that the data written to an RCU-allocated object survives* reallocation.
btree_free释放内存池功能
free_obj_work
debug_objects_replace_static_objectsConvert the statically allocated objects to dynamic ones:
lc_createlc_create - prepares to track objects in an active set*@name: descriptive name only used in lc_seq_printf_stats and lc_seq_dump_details*@max_pending_changes: maximum changes to accumulate until a transaction is required*@e_count: number of elements
lc_free_by_index
__kmem_cache_free_bulk
create_cache
slab_kmem_cache_release
__put_nommu_regionlease a reference to a region* - the caller must hold the region semaphore for writing, which this releases* - the region may not have been added to the tree yet, in which case vm_top* will equal vm_start
do_mmaphandle mapping creation for uClinux
split_vmasplit a vma into two pieces at address 'addr', a new vma is allocated either* for the first part or the tail.
ptlock_free
anon_vma_free
anon_vma_chain_free
merge_or_add_vmap_areaMerge de-allocated chunk of VA memory with previous* and next free blocks. If coalesce is not done a new* free area is inserted. If VA has been merged, it is* freed.
adjust_va_to_fit_type
alloc_vmap_areaAllocate a region of KVA of the specified size and alignment, within the* vstart and vend.
zswap_entry_cache_free
__mpol_putSlow path of a mpol destructor.
sp_free
sp_alloc
shared_policy_replaceReplace a policy range.
free_rmap_item
free_stable_node
free_mm_slot
slab_destroyslab_destroy - destroy and release all objects in a slab*@cachep: cache pointer being destroyed*@page: page pointer being destroyed* Destroy all the objs in a slab page, and release the mem back to the system.
free_kmem_cache_nodes
slab_mem_offline_callback
free_mm_slot
mem_pool_freeReturn the object to either the slab allocator or the memory pool.
free_object_rcuRCU callback to free a kmemleak_object.
create_objectCreate the metadata (struct kmemleak_object) corresponding to an allocated* memory block and add it to the object_list and object_tree_root.
add_scan_areaAdd a scanning area to the object. If at least one such area is added,* kmemleak will only scan these ranges rather than the whole memory block.
cache_free_handle
cache_free_zspage
free_handle
__release_z3fold_page
mqueue_free_inode
bvec_free
key_gc_unused_keysGarbage collect a list of unreferenced, detached keys
file_free_rcu
alloc_posix_timer
k_itimer_rcu_free
clone_uts_nsClone a new ns copying an original utsname, setting refcount to 1*@old_ns: namespace to clone* Return ERR_PTR(-ENOMEM) on error (failure to allocate), new ns otherwise
free_uts_ns
create_user_nsCreate a new user namespace, deriving the creator from the user in the* passed credentials, and replacing that user with the new root user for the* new namespace.* This is called by copy_creds(), which will finish setting the target task's* credentials.
free_user_ns
create_pid_namespace
delayed_free_pidns
audit_buffer_free
audit_tree_destroy_watch
taskstats_tgid_alloc
trace_destroy_fields
remove_event_file_dir