como proteger um cpu do agendador linux (evitar o agendamento de threads para esse cpu)?

É possível usarsched_setaffinity para fixar um thread para uma cpu, aumentando o desempenho (em algumas situações)

Na página do manual do linux:

Restringir um processo para ser executado em uma única CPU também evita o custo de desempenho causado pela invalidação de cache que ocorre quando um processo deixa de ser executado em uma CPU e, em seguida, recomeça a execução em uma CPU diferente

Além disso, se eu desejar uma resposta mais em tempo real, posso alterar a diretiva do agendador desse segmento paraSCHED_FIFO, e até a prioridade para algum valor alto (atésched_get_priority_max), o que significa que o encadeamento em questão deve sempre antecipar qualquer outro encadeamento em execução em sua cpu quando estiver pronto.

No entanto, neste ponto, o encadeamento em execução na CPU, que o encadeamento em tempo real acabou de esvaziar, provavelmente terá despejado muitas das entradas de cache de nível 1 do encadeamento em tempo real.

Minhas perguntas são as seguintes:

É possível evitar que o agendador agende quaisquer threads em uma determinada cpu? (por exemplo: ou esconda a cpu completamente do agendador, ou de alguma outra forma)Existem alguns tópicos que absolutamente tem que ser capaz de rodar nessa cpu? (por exemplo: threads do kernel / threads de interrupção)Se eu precisar ter threads de kernel rodando naquela cpu, qual é o valor máximo de uma prioridade razoável para usar de tal forma que eu não privarei os threads do kernel?

questionAnswers(3)

yourAnswerToTheQuestion