Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\kmemleak.c Create Date:2022-07-28 16:21:16
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Memory pool allocation and freeing. kmemleak_lock must not be held.

Proto:static struct kmemleak_object *mem_pool_alloc(gfp_t gfp)

Type:struct kmemleak_object

Parameter:

TypeParameterName
gfp_tgfp
422  If allocation caches for kmemleak internal data Then
423  object = kmem_cache_alloc(allocation caches for kmemleak internal data , GFP bitmask for kmemleak internal allocations (gfp))
424  If object Then Return object
429  write_lock_irqsave( & w_lock protecting the access to object_list and object_tree_root , flags)
430  object = list_first_entry_or_null - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.( & mem_pool_free_list, typeof( * object), he list of all allocated objects )
432  If object Then deletes entry from list
434  Else if mem_pool_free_count Then object = memory pool allocation [--mem_pool_free_count]
436  Else pr_warn_once("Memory pool empty, consider increasing CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE\n")
438  write_unlock_irqrestore( & w_lock protecting the access to object_list and object_tree_root , flags)
440  Return object
Caller
NameDescribe
create_objectCreate the metadata (struct kmemleak_object) corresponding to an allocated* memory block and add it to the object_list and object_tree_root.