函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\slub.c Create Date:2022-07-27 17:21:07
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Interrupts must be disabled (for the fallback code to work right)

函数原型:static inline bool __cmpxchg_double_slab(struct kmem_cache *s, struct page *page, void *freelist_old, unsigned long counters_old, void *freelist_new, unsigned long counters_new, const char *n)

返回类型:bool

参数:

类型参数名称
struct kmem_cache *s
struct page *page
void *freelist_old
unsigned longcounters_old
void *freelist_new
unsigned longcounters_new
const char *n
368  VM_BUG_ON(!已禁止中断())
379  Per slab locking using the pagelock
380  如果 first free object 恒等于freelist_old SLUB 恒等于counters_old
383  SLUB 等于counters_new
384  slab_unlock(page)
385  返回:true
387  slab_unlock(page)
390  cpu_relax()
391  stat(s, Number of times that cmpxchg double did not match )
397  返回:false
调用者
名称描述
acquire_slabRemove slab from the partial list, freeze it and* return the pointer to the freelist.* Returns a list of objects or NULL if it fails.
deactivate_slabRemove the cpu slab
get_freelistCheck the page->freelist of a page and either transfer the freelist to the* per cpu freelist or deactivate the page.* The page is still frozen if the return value is not NULL.* If this function returns NULL then the page has been unfrozen.