Protegendo CPU do programador - Como mover encadeamentos de kernel vinculados de núcleos?

2

Suponha que eu tenha 4 núcleos físicos (indexados 0-3) e eu esteja dedicando núcleos 1-3 a um escudo para aplicativos de usuário e tentando direcionar todos os threads do sistema para o core 0. Estou seguindo as respostas aqui e usando 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

No entanto, parece que não consigo mover todos os meus threads do kernel para o core 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

A página do manual do Ubuntu diz que o sinalizador --kthread só se aplica para tópicos de kernel unbound :

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

então eu presumo que eu precise mover os tópicos bound do kernel para longe dos núcleos 1-3 também. Como faço isso? (De preferência no CentOS.)

    
por elleciel 05.04.2018 / 18:40

0 respostas