Полное устранение отметки времени в современных Linux> = 5.0 - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь полностью устранить прерывания по таймеру на наборе ядер на тихой машине. Это единственные прерывания, регулярно обрабатываемые этими ядрами. Я isolcpu сделал их и собрал ядро ​​с CONFIG_NO_HZ_FULL, и теперь они получают прерывания по таймеру только раз в секунду. Возможно ли удалить это остаточное прерывание таймера 1 Гц?

Это ядро ​​делает c предполагает, что в какой-то момент был необходим случайный тик:

Для некоторых операций по обработке процесса все еще требуется время от времени. Эти операции включают в себя вычисление нагрузки на процессор, поддержание среднего по расписанию, вычисление vruntime объекта CFS, вычисление avenrun и балансировку нагрузки. В настоящее время они размещаются по расписанию часов каждую секунду или около того. Текущая работа устранит необходимость даже в этих нечастых тактах планирования.

А этот патч ядра , «Удалить код такта 1 Гц», предполагает, что это было удалено в более поздней версии ядра:

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

Я собрал ядро ​​5.3.0, надеясь, что этот остаточный тик будет удален, но он все еще присутствует.

Есть ли дополнительные параметры загрузки, которые мне нужно установить? Действительно ли оставшаяся отметка таймера действительно удалена в последних версиях ядра? ( этот вопрос содержит некоторую соответствующую информацию)

1 Ответ

2 голосов
/ 20 февраля 2020

Тик 1HZ не может быть полностью удален из всех процессоров, иначе мы не сможем вести статистику. Вместо этого происходит то, что теперь он выполняется через очередь задач, и теперь вы можете настроить housekeeping ЦП, который будет обрабатывать все глобальные задачи очереди задач. Подробности смотрите в commit .

Также рекомендуется использовать параметр командной строки nohz_full вместе с процессорами для управления набором изолированных процессоров. Вам все еще нужно разрешить одному из них (загрузочный процессор по умолчанию) быть служебным процессором.

...