Планировщик ядра LAVD, написанный на языке Rust, показывает многообещающие результаты для Linux-игр.
Чангву Мин (Changwoo Min) из компании Igalia представил на Open-Source Summit North America доклад об оптимизации планировщика ядра для Linux-игр. Конечно, мотивация связана со Steam Deck от Valve, но и для игр на Linux в целом эта работа над планировщиком также будет полезна, чтобы в идеале уменьшить заикания во время игры.
Презентация Igalia была посвящена влиянию планировщика Linux на заикание во время игры и тому, как «sched_ext» может быть использован в качестве расширяемого фреймворка планировщика на основе BPF. Работа над sched_ext была интересна по многим причинам расширения планировщика ядра с помощью (e)BPF, начиная с изучения возможностей Canonical/Ubuntu, более быстрого создания прототипов новых планировщиков и заканчивая положительными результатами для игр Linux с новой реализацией планировщика.
Планировщик Latency-criticality Aware Virtual Deadline (LAVD) был основным техническим направлением презентации Чангву Мина. Этот планировщик на основе дедлайнов, написанный на языке Rust для sched_ext, показал многообещающие результаты. В тестах, проведенных Igalia на ядре Linux 6.9-rc1, планировщик LAVD демонстрировал производительность выше или схожую с EEVDF, как по среднему FPS, так и по 1% низкой частоты кадров.
Будет интересно посмотреть, что Valve в итоге решит сделать с планировщиком для Steam Deck / Steam OS и какие дальнейшие оптимизации планировщика могут появиться в ближайшем будущем.