Инженер Google Кайс Юсеф в воскресенье выпустил патч, предлагающий увеличить частоту таймера ядра Linux по умолчанию с 250 Гц до 1000 Гц. Инженер Google считает, что текущая частота ядра Linux по умолчанию может вызвать проблемы с решениями планировщика, такие как неточные временные интервалы, задержки балансировки нагрузки, задержки обновления статистики и другие связанные проблемы. КайсЮсеф считает, что ядру лучше использовать частоту по умолчанию 1000 Гц:

«Обычная конфигурация экрана, такая как Android и настольные системы, составляет 120 Гц. Это дает задаче 8 мс для работы. 4 мс — это половина этого времени, что делает бремя принятия очень хороших решений при пробуждении более тяжелым, чем необходимо. Это также затрудняет эффективное использование системы для поддержания оптимальной производительности/ватт. Например, мы пытаемся определить запас DVFS как функцию TICK, потому что он определяет наихудший сценарий обновления статистики. Больший TICK означает, что нам придется слишком агрессивно увеличивать частоту если мы хотим добиться того, чтобы производительность не пострадала, но если задача не исчерпает все фрагменты, мы теряем возможность использовать более низкую частоту и экономить электроэнергию.

В целом сроки выполнения рабочей нагрузки становятся короче, и это характерно не только для конвейера пользовательского интерфейса.

Я считаю, что HZ_250 является настройкой по умолчанию в качестве компромисса для заряда батареи в устройствах, которым могут не нравиться частые ТИКИ, которые могут без необходимости разряжать батарею. Но, насколько я понимаю, текущего статуса NOHZ должно быть достаточно, чтобы смягчить эти опасения. Недавнее добавление RCU_LAZY дополнительно помогает поддерживать более длинные TICK в сценариях простоя.

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

Более быстрый TICK все равно может привести к увеличению мощности, но не из-за активности TICK. Система более отзывчива (как и ожидалось) и задержка на более высоких частотах, как ожидается, будет выше, поскольку они случайно застревают на более низких частотах. В сериях из [1] делается попытка улучшить обработку планировщиком скорости ответа и предоставить пользователям/приложениям способы лучше удовлетворить их потребности, включая отказ от адекватного ответа (в приведенной выше серии ramup_multiplier равен 0)».

Частота таймера ядра Linux уже давно является источником споров и различных мнений. Но теперь частота ядра по умолчанию составляет 1000 Гц вместо 250 Гц, что кажется логичным.

Исправление для изменения частоты по умолчанию отправлено на рассмотрение/обсуждение.