Я пытаюсь полностью устранить прерывания по таймеру на наборе ядер на тихой машине. Это единственные прерывания, регулярно обрабатываемые этими ядрами. Я isolcpu
сделал их и собрал ядро с CONFIG_NO_HZ_FULL
, и теперь они получают прерывания по таймеру только раз в секунду. Возможно ли удалить это остаточное прерывание таймера 1 Гц?
Это ядро делает c предполагает, что в какой-то момент был необходим случайный тик:
Для некоторых операций по обработке процесса все еще требуется время от времени. Эти операции включают в себя вычисление нагрузки на процессор, поддержание среднего по расписанию, вычисление vruntime объекта CFS, вычисление avenrun и балансировку нагрузки. В настоящее время они размещаются по расписанию часов каждую секунду или около того. Текущая работа устранит необходимость даже в этих нечастых тактах планирования.
А этот патч ядра , «Удалить код такта 1 Гц», предполагает, что это было удалено в более поздней версии ядра:
Теперь, когда тик 1 Гц выгружен в рабочие очереди, мы можем безопасно удалить остаточный код, который использовался для локальной обработки.
Я собрал ядро 5.3.0, надеясь, что этот остаточный тик будет удален, но он все еще присутствует.
Есть ли дополнительные параметры загрузки, которые мне нужно установить? Действительно ли оставшаяся отметка таймера действительно удалена в последних версиях ядра? ( этот вопрос содержит некоторую соответствующую информацию)