函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:purge_fragmented_blocks

函数原型:static void purge_fragmented_blocks(int cpu)

返回类型:void

参数:

类型参数名称
intcpu
1565  LIST_HEAD(purge)
1568  vbq等于per_cpu(Queue of free and dirty vmap blocks, for allocation and flushing purposes , cpu)
1570  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
1573  如果非freedirty恒等于VMAP_BBMAP_BITSdirty不等于VMAP_BBMAP_BITS的值则继续下一循环
1576  加自旋锁
1577  如果freedirty恒等于VMAP_BBMAP_BITSdirty不等于VMAP_BBMAP_BITS
1578  free等于0
1579  dirty等于VMAP_BBMAP_BITS
1580  dirty_min等于0
1581  < dirty range 等于VMAP_BBMAP_BITS
1582  加自旋锁
1583  删除不需要重新初始化的列表项
1584  自旋锁解锁
1585  自旋锁解锁
1586  添加链表项
1587  否则自旋锁解锁
1590  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
1593  删除链表项
1594  free_vmap_block(vb)
调用者
名称描述
purge_fragmented_blocks_allcpusr per-CPU blocks