c语言 - "CPU dies"(与硬件无关)是什么意思?



最近使用Linux内核的工作队列,我发现了一些我不确定它是什么的东西("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);
}

每个 CPU 的工作队列通常是首选,因为它们往往显示更好的性能。

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

如果工作人员的工作队列(每个工作人员一个工作队列)为空,则该工作人员将进入 IDLE。

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

看这里

最新更新