Bagaimana menafsirkan nama utas kworker?

15

Di Linux 3.11.0-13-generik yang berjalan di atas soket ganda Xeon X5650 inti papan hexa, htopmenunjukkan thread kworker yang berbeda. Diurutkan berdasarkan nama (saya mengubah hasil yang saya tunjukkan di sini sedikit untuk memiliki utas pada inti 2 sebelum yang pada inti 10), inilah hasilnya:

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
.......

Utas yang namanya dimulai dengan nomor disematkan ke inti dengan nomor yang sama. Jadi angka pertama adalah inti menjalankan utas dan saya bertanya-tanya apa simbol setelah :( 0atau 0Hatau 1) untuk utas ini?

Saya juga bertanya-tanya apa arti uXX:Ysimbol itu?

Saya hanya memiliki pengetahuan yang samar-samar tentang apa yang dilakukan thread kworker: mereka menangani peristiwa asinkron yang disebabkan oleh panggilan sistem yang melakukan I / O. Apakah mereka didokumentasikan di suatu tempat?

Manuel Selva
sumber

Jawaban:

20

Menurut kernel.org , sintaksnya adalah kworker/%u:%d%s (cpu, id, priority). The umenunjuk CPU khusus, cpu terikat, yang berarti bahwa kthread saat ini terikat.

Pekerja workqueue yang memiliki nilai bagus negatif memiliki 'H' postfixed ke nama mereka. ( sumber )

Jan
sumber
Jadi semua kworkerproses dalam pertanyaan OP tidak memiliki prioritas yang ditetapkan?
Ken Sharp