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