函数逻辑报告 | 
Source Code:kernel\workqueue.c | 
Create Date:2022-07-27 10:27:01 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:process_one_work - process single work*@worker: self*@work: work to process* Process @work
函数原型:static void process_one_work(struct worker *worker, struct work_struct *work)__releases(&pool->lock) __acquires(&pool->lock)
返回类型:void
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct worker * | worker | |
| struct work_struct * | work | 
| 2161 | pwq等于get_work_pwq(work) | 
| 2162 | pool等于A: the associated pool | 
| 2163 | cpu_intensive等于flags按位与WQ_CPU_INTENSIVE | 
| 2179 | WARN_ON_ONCE(!(X: flags & POOL_DISASSOCIATED) && These macros fold the SMP functionality into a single CPU system() != I: the associated cpu ) | 
| 2189 | 如果此条件成立可能性小(为编译器优化)(collision)则 | 
| 2195 | debug_work_deactivate(work) | 
| 2197 | L: work being processed 等于work | 
| 2198 | L: current_work's fn 等于func | 
| 2199 | L: current_work's pwq 等于pwq | 
| 2200 | work_color等于get_work_color(work) | 
| 2208 | 删除链表项并重新初始化 | 
| 2237 | spin_unlock_irq( & he pool lock ) | 
| 2239 | lock_map_acquire( & lockdep_map) | 
| 2240 | lock_map_acquire( & lockdep_map) | 
| 2262 | lockdep_invariant_state(true) | 
| 2264 | L: current_work's fn (work) | 
| 2270 | lock_map_release( & lockdep_map) | 
| 2271 | lock_map_release( & lockdep_map) | 
| 2274 | 打印错误信息("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n last function: %ps\n", comm, 抢占计数值, task_pid_nr(当前进程), L: current_work's fn ) | 
| 2278 | debug_show_held_locks(当前进程) | 
| 2279 | dump_stack() | 
| 2290 | cond_resched() | 
| 2292 | spin_lock_irq( & he pool lock ) | 
| 2302 | 从哈希表移除对象 | 
| 2303 | L: work being processed = NULL | 
| 2304 | L: current_work's fn = NULL | 
| 2305 | L: current_work's pwq = NULL | 
| 名称 | 描述 | 
|---|---|
| process_scheduled_works | process_scheduled_works - process scheduled works*@worker: self* Process all scheduled works | 
| worker_thread | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |