什么是;“CPU死亡”;(与硬件无关)是什么意思?

什么是;“CPU死亡”;(与硬件无关)是什么意思?,c,linux,linux-kernel,workqueue,C,Linux,Linux Kernel,Workqueue,最近使用Linux内核的workqueue时,我发现了一些东西(“CPU死机”),我不确定它是什么,甚至用谷歌搜索它 这是否意味着特定的CPU核心目前不可用或类似的东西 下面是我要问的问题的上下文(): 每cpu工作队列通常是首选的,因为它们往往表现出更好的性能 工作队列在一个CPU上提交,但如果该CPU进入空闲状态,则工作队列将移动到另一个CPU 如果工作线程的工作队列(每个工作线程一个工作队列)为空,则该工作线程将处于空闲状态 绑定到实际CPU的每个工作池通过挂接到调度程序来实现并发管理。每

最近使用Linux内核的workqueue时,我发现了一些东西(“CPU死机”),我不确定它是什么,甚至用谷歌搜索它

这是否意味着特定的CPU核心目前不可用或类似的东西

下面是我要问的问题的上下文():


每cpu工作队列通常是首选的,因为它们往往表现出更好的性能

工作队列在一个CPU上提交,但如果该CPU进入空闲状态,则工作队列将移动到另一个CPU

如果工作线程的工作队列(每个工作线程一个工作队列)为空,则该工作线程将处于空闲状态

绑定到实际CPU的每个工作池通过挂接到调度程序来实现并发管理。每当活动工作线程醒来或睡觉时,工作线程池都会收到通知,并跟踪当前可运行工作线程的数量。通常,工作项不会占用CPU并消耗很多周期。这意味着保持足够的并发性以防止工作处理暂停应该是最佳的。只要CPU上有一个或多个可运行的工作线程,工作线程池就不会开始执行新的工作线程,但是,当最后一个运行的工作线程进入睡眠状态时,它会立即安排一个新的工作线程,这样当有挂起的工作项时,CPU就不会处于空闲状态。这允许在不损失执行带宽的情况下使用最少数量的工作线程


有关随机猜测,请参见

;我认为这与热插拔CPU支持有关-例如,如果CPU脱机,那么…谢谢!第二段的“空闲”给了我一个关键词来解决这个问题
/**
 * queue_work - queue work on a workqueue
 * @wq: workqueue to use
 * @work: work to queue
 *
 * Returns %false if @work was already on a queue, %true otherwise.
 *
 * We queue the work to the CPU on which it was submitted, but if the CPU dies
 * it can be processed by another CPU.
 */
static inline bool queue_work(struct workqueue_struct *wq,
                  struct work_struct *work)
{
    return queue_work_on(WORK_CPU_UNBOUND, wq, work);
}