函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:quarantine_put

函数原型:void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache)

返回类型:void

参数:

类型参数名称
struct kasan_free_meta *info
struct kmem_cache *cache
177  temp等于QLIST_INIT
187  local_irq_save(flags)
189  q等于this_cpu_ptr( & The object quarantine consists of per-cpu queues and a global queue,* guarded by quarantine_lock.)
190  qlist_put(q, & This field is used while the object is in the quarantine. * Otherwise it might be used for the allocator freelist., The size of an object including metadata )
191  如果此条件成立可能性小(为编译器优化)(bytes > QUARANTINE_PERCPU_SIZE)则
192  qlist_move_all(q, & temp)
194  raw_spin_lock( & quarantine_lock)
195  WRITE_ONCE(Total size of all objects in global_quarantine across all batches. , Total size of all objects in global_quarantine across all batches. + bytes)
196  qlist_move_all( & temp, & Round-robin FIFO array of batches. [quarantine_tail])
201  new_tail等于quarantine_tail加1
202  如果new_tail恒等于QUARANTINE_BATCHESnew_tail等于0
204  如果new_tail不等于quarantine_headquarantine_tail等于new_tail
207  raw_spin_unlock( & quarantine_lock)
210  local_irq_restore(flags)