如何解释 kworker 线程名称?

Man*_*lva 20 linux linux-kernel

在双插槽 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
.......
Run Code Online (Sandbox Code Playgroud)

名称以数字开头的线程被固定到具有相同数字的核心。所以第一个数字是运行线程的核心,我想知道:00H1)后面的符号是什么?

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

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

Jan*_*Jan 24

根据kernel.org,语法是kworker/%u:%d%s (cpu, id, priority). 该u指定专门的CPU,该CPU绑定,这意味着KTHREAD当前绑定。

具有负的 nice 值的工作队列工人在他们的名字后加上“H”。(来源