如何解释 kworker 线程名称?

如何解释 kworker 线程名称?

在运行于双路 Xeon X5650 六核主板之上的 Linux 3.11.0-13-generic 上,htop显示不同的 kworker 线程。按名称排序(我稍微调整了此处显示的结果,使核心 2 上的线程位于核心 10 上的线程之前),结果如下:

kworker/0:0H
kworker/0:1
kworker/0:2
kworker/1:0
kworker/1:0H
kworker/1:1
kworker/2:0
kworker/2:0H
kworker/2:1
.....
kworker/11:0
kworker/11:0H
kworker/11:1
kworker/u48:0
kworker/u49:4
kworker/u49:5
kworker/u50:1
kworker/u50:2
.......

名称以数字开头的线程将固定到具有相同数字的核心。所以第一个数字是运行线程的核心,我想知道:(00H或)之后的符号1对于这些线程来说是什么?

我也想知道这些符号的含义是什么uXX:Y

我对 kworker 线程的作用只有一个模糊的了解:它们处理由执行 I/O 的系统调用引起的异步事件。它们是否记录在某处?

答案1

根据内核.org,语法为kworker/%u:%d%s (cpu, id, priority).指定u一个特殊的CPU,即unbound cpu,意味着kthread当前未绑定。

具有负好值的工作队列工作人员的名字后缀为“H”。 (来源

相关内容