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