How interpret kworker threads names?
On Linux 3.11.0-13-generic running on top of a dual socket Xeon X5650 hexa core board, htop
shows different kworker threads. Sorted by names (I tweaked the result I am showing here a little bit to have the threads on core 2 before the ones on core 10), here is the result:
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
.......
The threads whose names start with a number are pinned to the core with the same number. So the first number is the core running the thread and I am wondering what the symbol after :
(0
or 0H
or 1
) is for these threads?
I am also wondering what is the meaning of the uXX:Y
symbols?
I have only a vague knowledge of what kworker threads do: they handle asynchronous events caused by system calls performing I/O. Are they documented somewhere?
According to kernel.org, the syntax is kworker/%u:%d%s (cpu, id, priority)
. The u
designates a special CPU, the unbound cpu, meaning that the kthread is currently unbound.
The workqueue workers which have negative nice value have ‘H’ postfixed to their names. (source)