스케줄러에서 CPU 마스킹 - 커널에서 바인딩된 커널 스레드를 이동하는 방법은 무엇입니까?

스케줄러에서 CPU 마스킹 - 커널에서 바인딩된 커널 스레드를 이동하는 방법은 무엇입니까?

4개의 물리적 코어(인덱스 0-3)가 있고 코어 1-3을 사용자 애플리케이션의 보호 전용으로 지정하고 모든 시스템 스레드를 코어 0으로 보내려고 한다고 가정해 보겠습니다. 나는 대답을 따르고있다여기그리고 사용 cset:

# /usr/local/bin/cset shield --cpu 1-3  
cset: --> activating shielding:
cset: moving 145 tasks from root into system cpuset...
[==================================================]%
cset: "system" cpuset of CPUSPEC(0) with 145 tasks running
cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running

그러나 모든 커널 스레드를 코어 0으로 이동할 수는 없는 것 같습니다.

# cset shield --kthread on
cset shield --kthread on
cset: --> activating kthread shielding
cset: kthread shield activated, moving 175 tasks into system cpuset...
[==================================================]%
cset: **> 30 tasks are not movable, impossible to move
cset: done

이것우분투 매뉴얼 페이지플래그 --kthread는 다음에만 적용된다고 합니다.속박되지 않은커널 스레드:

   -k on|off, --kthread=on|off
       shield from unbound interrupt threads as well

그래서 이사해야 할 것 같아경계커널 스레드도 코어 1-3과 멀리 떨어져 있습니다. 어떻게 해야 하나요? (CentOS를 선호합니다.)

관련 정보