Как защитить процессор от планировщика Linux (не допускать планирования потоков на этот процессор)?

Можно использоватьsched_setaffinity закрепить поток на процессоре, увеличив производительность (в некоторых ситуациях)

Со страницы руководства Linux:

Restricting a process to run on a single CPU also avoids the performance cost caused by the cache invalidation that occurs when a process ceases to execute on one CPU and then recommences execution on a different CPU

Кроме того, если я хочу получить ответ в режиме реального времени, я могу изменить политику планировщика для этого потока наSCHED_FIFOи повысить приоритет до некоторого высокого значения (доsched_get_priority_max), что означает, что рассматриваемый поток должен всегда опережать любой другой поток, выполняющийся на его процессоре, когда он становится готовым.

Однако в этот момент поток, работающий на процессоре, который поток с реальным временем только что очистил, возможно, изгнал бы большую часть записей кэша уровня 1 потока в реальном времени.

Мои вопросы следующие:

Is it possible to prevent the scheduler from scheduling any threads onto a given cpu? (eg: either hide the cpu completely from the scheduler, or some other way) Are there some threads which absolutely have to be able to run on that cpu? (eg: kernel threads / interrupt threads) If I need to have kernel threads running on that cpu, what is a reasonable maximum priority value to use such that I don't starve out the kernel threads?

Ответы на вопрос(3)

Ваш ответ на вопрос