kworker 스레드 이름을 어떻게 해석합니까? 결과를 약간

듀얼 소켓 Xeon X5650 헥사 코어 보드에서 실행되는 Linux 3.11.0-13-generic에서 htop다른 kworker 스레드를 보여줍니다. 이름별로 정렬했습니다 (코어 10의 스레드보다 스레드 2가 먼저 표시되도록 결과를 약간 조정했습니다). 결과는 다음과 같습니다.

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

이름이 숫자로 시작하는 스레드는 같은 숫자로 코어에 고정됩니다. 그래서 첫 번째 숫자는 스레드를 실행하는 코어 이며이 스레드에 대한 기호 :( 0또는 0H또는 1)가 무엇인지 궁금 합니다.

또한 uXX:Y기호 의 의미가 무엇인지 궁금합니다 .

kworker 스레드가 수행하는 작업에 대한 모호한 지식 만 있습니다. I / O를 수행하는 시스템 호출로 인한 비동기 이벤트를 처리합니다. 어딘가에 기록되어 있습니까?



답변

kernel.org 에 따르면 구문은 kworker/%u:%d%s (cpu, id, priority)입니다. 이것은 u특별한 CPU, 언 바운드 CPU를 지정하는데, 이는 kthread가 현재 언 바운드임을 의미합니다.

음수 값이 좋은 작업 대기열 작업자는 이름 앞에 ‘H’가 붙습니다. ( 소스 )