Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:cmpxchg_double_slab

Proto: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)

Type:bool

Parameter:

TypeParameterName
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  If first free object == freelist_old && SLUB == counters_old Then
421  first free object = freelist_new
422  SLUB = counters_new
423  slab_unlock(page)
424  local_irq_restore(flags)
425  Return 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  Return false
Caller
NameDescribe
__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