函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:cmpxchg_double_slab

函数原型: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
417  local_irq_save(flags)
418  Per slab locking using the pagelock
419  如果 first free object 恒等于freelist_old SLUB 恒等于counters_old
421  first free object 等于freelist_new
422  SLUB 等于counters_new
423  slab_unlock(page)
424  local_irq_restore(flags)
425  返回:true
427  slab_unlock(page)
428  local_irq_restore(flags)
431  cpu_relax()
432  stat(s, Number of times that cmpxchg double did not match )
438  返回:false
调用者
名称描述
__slab_freeSlow path handling. This may still be called frequently since objects* have a longer lifetime than the cpu slabs in most processing loads.* So we still attempt to reduce cache line usage. Just take the slab* lock and free the item