Пока в РФ спорят, а нужны ли народу отечественные ОС на базе Linux. Компания Valve, владелец Steam, объявила выигранной битву в Linux за игровой опыт без замираний игр — так называемый «0.1% FPS», без подёргиваний по вине ядра ОС.
Именно с этой подачи и финансирования, теперь в Linux с ядер 6.12+ можно переключаться между разными планировщиками задач (процессов). Если точнее, то между eBPF-реализациями планировщиками, включая специальный для игр на десктопе. Например, можно включать LAVD на лету без перезагрузки или тем более какой-либо суеты с установкой или сборкой ядер.
Т.е. теперь
sched_ext рулит внутри ОС за распределение квантов процессорного времени, каким тредам каких процессов какие отсыпать кванты. А то как именно это всё происходит, с учётом каких аспектов — это определяется на ходу — загруженной программулиной на eBPF.
Есть презентация с The Linux Foundation
https://youtube.com/watch?v=ddWdUoFx9g4
Реально работает. Проверить используется ли прямо сейчас sched_ext и включить LAVD-планировщик:
#: cat /sys/kernel/sched_ext/state
disable
#: scxctl start --sched lavd --mode gaming В комплекте идёт несколько eBPF-планировщиков:
#: scxctl list
supported schedulers: ["beerland", "bpfland", "cake", "cosmos", "flash", "flow", "lavd", "pandemonium", "p2dq", "tickless", "rustland", "rusty"]Можно выключить вообще:
scxctl stopили же переключиться на другой:
#: scxctl switch --sched название --mode режим-аргументыГлянуть какой именно сейчас планировщик:
#: scxctl get
running Lavd in Gaming mode
.. либо
#: cat /sys/kernel/sched_ext/root/ops
lavd_A.B.C_x86_64_unknown_linux_gnu Свои Steam Machine & etc. компания Valve делает на базе ArchLinux, необходимое для показанного есть в двух пакетах:
scx-scheds и
scx-tools.
Если GameMode включать, то LAVD-планировщик лучше понимает как работать с процессом запущенной игры.
Как увидеть эти самые «0.1% FPS»
Проще настроить через Goverlay, но или руками убедиться в наличии "fps_metrics=avg,0.001":
#: cat ~/.config/MangoHud/MangoHud.conf
legacy_layout=0
horizontal
background_alpha=0.3
round_corners=0
font_size=19
position=top-left
gpu_list=0
table_columns=3
fps_metrics=avg,0.001
frame_timing
toggle_hud=Shift_R+F12
toggle_fps_limit=Shift_L+F1Скрывать или показывать вывод MangoHud — по правому Shift + F12.
Сбросить показания при смене локации — по левому Shift + F1.
#
игры #
games #
gaming #
sched_ext #
linux #
linuxgaming #
linuxgames #
valve #
steam #
ebpf #
lang_ru @
Russia