函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |