函数逻辑报告 | 
Source Code:kernel\softirq.c | 
Create Date:2022-07-27 10:04:06 | 
| Last Modify:2022-05-22 11:04:38 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:__do_softirq
函数原型:asmlinkage __visible void __softirq_entry __do_softirq(void)
返回类型:void
参数:无
| 251 | end等于jiffies加We restart softirq processing for at most MAX_SOFTIRQ_RESTART times,* but break the loop if need_resched() is set or after 2 ms | 
| 264 | flags与等于Allocating memory 的反 | 
| 266 | pending等于local_softirq_pending() | 
| 270 | in_hardirq等于lockdep_softirq_start() | 
| 272 | restart : | 
| 274 | set_softirq_pending(0) | 
| 276 | 开中断() | 
| 280 | 当softirq_bit等于在字中找到第一个指定位循环 | 
| 284 | h加等于softirq_bit减1 | 
| 287 | prev_count等于抢占计数值 | 
| 294 | 如果此条件成立可能性小(为编译器优化)(prev_count != 抢占计数值)则 | 
| 295 | 打印错误信息("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n", vec_nr, softirq_to_name[vec_nr], action, prev_count, 抢占计数值) | 
| 298 | 设置抢占计数 | 
| 300 | h自加 | 
| 301 | pending右移等于softirq_bit位 | 
| 304 | 如果Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(ksoftirqd)恒等于当前进程则rcu_softirq_qs() | 
| 306 | 禁止中断() | 
| 308 | pending等于local_softirq_pending() | 
| 309 | 如果pending则 | 
| 310 | 如果time_before(jiffies, end)且非need_resched()且max_restart先自减则转到:restart | 
| 320 | WARN_ON_ONCE(in_interrupt()) | 
| 名称 | 描述 | 
|---|---|
| run_ksoftirqd | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |