函数逻辑报告 |
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 |
注解内核,赢得工具 | 下载SCCT | English |
函数名称: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) |
201 | new_tail等于quarantine_tail加1 |
202 | 如果new_tail恒等于QUARANTINE_BATCHES则new_tail等于0 |
204 | 如果new_tail不等于quarantine_head则quarantine_tail等于new_tail |
207 | raw_spin_unlock( & quarantine_lock) |
210 | local_irq_restore(flags) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |