函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:释放内存

函数原型:void kfree(const void *block)

返回类型:void

参数:

类型参数名称
const void *block
540  trace_kfree(_RET_IP_, block)
542  如果此条件成立可能性小(为编译器优化)(ZERO_OR_NULL_PTR(block))则返回
544  kmemleak_free(block)
546  sp等于virt_to_page(kaddr) returns a valid pointer if and only if* virt_addr_valid(kaddr) returns true.(block)
547  如果PageSlab(sp)则
548  align等于max_t - return maximum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(size_t, ARCH_KMALLOC_MINALIGN, Setting ARCH_SLAB_MINALIGN in arch headers allows a different alignment.* Intended for arches that get misalignment faults even for 64 bit integer* aligned buffers.)
549  m等于blockalign
550  slob_free: entry point into the slob allocator.
551  否则
552  order等于compound_order(sp)
553  mod_node_page_state(page_pgdat(sp), NR_SLAB_UNRECLAIMABLE, - (1 << order))
555  __free_pages(sp, order)
调用者
名称描述
ida_alloc_rangeda_alloc_range() - Allocate an unused ID.*@ida: IDA handle.*@min: Lowest ID to allocate.*@max: Highest ID to allocate.*@gfp: Memory allocation flags.* Allocate an ID between @min and @max, inclusive. The allocated ID will
alloc_ldt_structThe caller must call finalize_ldt_struct on the result. LDT starts zeroed.
free_resource
free_hash
mempool_exitmempool_exit - exit a mempool initialized with mempool_init()*@pool: pointer to the memory pool which was initialized with* mempool_init().* Free all reserved elements in @pool and @pool itself. This function* only sleeps if the free_fn() function sleeps.
free_part_info
__reqsk_free
tcp_saved_syn_free
ida_freeda_free() - Release an allocated ID.*@ida: IDA handle.*@id: Previously allocated ID.* Context: Any context.
ida_destroy释放所有缓存层内IDA树
argv_free释放参数
argv_splitargv_split - split a string at whitespace, returning an argv*@gfp: the GFP mask used to allocate memory*@str: the string to be split*@argcp: returned argument count* Returns an array of pointers to strings which are split out from*@str
kobject_action_args
kobject_synth_ueventkobject_synth_uevent - send synthetic uevent with arguments*@kobj: struct kobject for which synthetic uevent is to be generated*@buf: buffer containing action type and action args, newline is ignored*@count: length of buffer* Returns 0 if
kobject_uevent_envkobject_uevent_env - send an uevent with environmental data*@kobj: struct kobject that the action is happening to*@action: action that is happening*@envp_ext: pointer to environmental data* Returns 0 if kobject_uevent_env() is completed with success or the
uevent_net_init
uevent_net_exit
kobject_renamekobject_rename() - Change the name of an object
kobject_move移动对象
dynamic_kobj_release
kset_release
kset_createkset_create() - Create a struct kset dynamically
kset_create_and_addkset_create_and_add() - Create a struct kset dynamically and add it to sysfs
ipc_init_proc_interfacepc_init_proc_interface - create a proc interface for sysipc types using a seq_file interface.*@path: Path in procfs*@header: Banner to be printed at the beginning of the file.*@ids: ipc id table to iterate.*@show: show routine.
bio_free
key_gc_unused_keysGarbage collect a list of unreferenced, detached keys
vfs_readv