workqueue_cpu_up_callback()创建了其他CPU工作线程 kernel_init()->kernel_init_freeable()->smp_init()->cpu_up()->_cpu_up()->__raw_notifier_call_chain()->workqueue_cpu_up_callback()->create_worker() 在init_workqueues()开头就注册了CPU_PRI_WORKQUEUE_UP处理函数,所以在smp_...
*/ trace_workqueue_execute_end(work); lock_map_release(&lockdep_map); lock_map_release(&pwq->wq->lockdep_map); if (unlikely(in_atomic() || lockdep_depth(current) > 0)) { pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n" " last function: %pf\n", current->comm,...
spinlock_tlock;/*the pool lock*/---用于保护worker_pool的自旋锁intcpu;/*I: the associated cpu*/---对于unbound类型为-1;对于bound类型workqueue表示绑定的CPU ID。intnode;/*I: the associated node ID*/intid;/*I: pool ID*/---该worker_pool的ID号unsignedintflags;/*X: flags*/structlist_hea...
*/ trace_workqueue_execute_end(work); lock_map_release(&lockdep_map); lock_map_release(&pwq->wq->lockdep_map); if (unlikely(in_atomic() || lockdep_depth(current) > 0)) { pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n" " last function: %pf\n", current->comm,...