Estou lendo sobre proteção de cpu usando o utilitário cset
de Alex Tsariounov aqui: link
No tutorial, estou descobrindo que o texto em torno da migração de encadeamentos do kernel tem acesso a todos os processadores para executar apenas em um certo cpuset um pouco ambíguo
O tutorial diz o seguinte:
Some kernel threads can be moved into the unshielded system cpuset as well. These are the threads that are not bound to specific CPUs.
If a kernel thread is bound to a specific CPU, then it is generally not a good idea to move that thread to the system set because at worst it may hang the system and at best it will slow the system down significantly. These threads are usually the IRQ threads on a real time Linux kernel, for example, and you may want to not move these kernel threads into system. If you leave them in the root cpuset, then they will have access to all CPUs.
O tutorial continua dizendo:
However, if your application demands an even "quieter" shield, then you can move all movable kernel threads into the unshielded system set with the following command.
[zuul:cpuset-trunk]# cset shield -k on cset: --> activating kthread
shielding cset: kthread shield activated, moving 70 tasks into system
cpuset... [==================================================]% cset:
done
Estou confuso com esta frase final. No entanto, ao usar a palavra , parece sugerir que você normalmente deve não mover os encadeamentos móveis do kernel para o sistema não-blindado .
É este o caso, ou é seguro mover os tópicos do kernel que podem ser movidos para um cpuset, evitando assim que eles sejam executados em algum cpus?
Tags performance linux