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