函数逻辑报告 |
Source Code:kernel\rcu\tree.c |
Create Date:2022-07-27 11:26:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Invoke any RCU callbacks that have made it to the end of their grace* period. Thottle as specified by rdp->blimit.
函数原型:static void rcu_do_batch(struct rcu_data *rdp)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct rcu_data * | rdp |
| 2140 | offloaded等于IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_RCU_NOCB_CPU)且Is the specified rcu_segcblist offloaded? |
| 2143 | rcl等于RCU_CBLIST_INITIALIZER(rcl) |
| 2145 | tlimit等于0 |
| 2156 | 返回 |
| 2164 | local_irq_save(flags) |
| 2165 | rcu_nocb_lock(rdp) |
| 2166 | WARN_ON_ONCE(cpu_is_offline(当前cpu ID())) |
| 2168 | bl等于两数取大(Upper limit on a processed batch , pending >> rcu_divisor) |
| 2169 | 如果此条件成立可能性小(为编译器优化)(bl > 100)则tlimit等于local_clock()加Force an exit from rcu_do_batch() after 3 milliseconds. |
| 2177 | rcu_nocb_unlock_irqrestore(rdp, flags) |
| 2181 | rhp等于rcu_cblist_dequeue( & rcl) |
| 2183 | debug_rcu_head_unqueue(rhp) |
| 2190 | 如果负len大于等于bl且非offloaded且need_resched()或非是空闲任务且非rcu_is_callbacks_kthread()的值则退出 |
| 2194 | 如果此条件成立可能性小(为编译器优化)(tlimit)则 |
| 2196 | 如果此条件成立可能性大(为编译器优化)(( - len & 31) || local_clock() < tlimit)则继续下一循环 |
| 2199 | 退出 |
| 2201 | 如果offloaded则 |
| 2202 | WARN_ON_ONCE(in_serving_softirq()) |
| 2203 | local_bh_enable() |
| 2204 | lockdep_assert_irqs_enabled() |
| 2206 | lockdep_assert_irqs_enabled() |
| 2207 | local_bh_disable() |
| 2211 | local_irq_save(flags) |
| 2212 | rcu_nocb_lock(rdp) |
| 2219 | smp_mb() |
| 2220 | rcu_segcblist_insert_count( & Segmented callback list, with , & rcl) |
| 2224 | 如果Upper limit on a processed batch 大于等于... even during callback flood. 且count小于等于qlowmark则Upper limit on a processed batch 等于blimit |
| 2228 | 如果count恒等于0且different grace periods. 不等于0则 |
| 2231 | 否则如果count小于different grace periods. 减qhimark则different grace periods. 等于count |
| 2242 | rcu_nocb_unlock_irqrestore(rdp, flags) |
| 2245 | 如果非offloaded且Does the specified rcu_segcblist structure contain callbacks that* are ready to be invoked?则invoke_rcu_core() |
| 名称 | 描述 |
|---|---|
| rcu_core | Perform RCU core processing work for the current CPU. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |