[Comm] JACK, /proc/sys/kernel/sched_rt_runtime_us, CONFIG_RT_GROUP_SCHED

Yuriy Al. Shirokov yuriy.shirokov на gmail.com
Сб Май 9 22:46:25 MSK 2020


Похоже, разобрался.

пт, 8 мая 2020 г. в 21:35, Yuriy Al. Shirokov <yuriy.shirokov на gmail.com>:
> Есть только одна проблема — в Альте нет ни /etc/cgconfig.conf, ни
> /etc/cgrules.conf, ни сервиса cgconfig в systemd.

На самом деле есть, просто пакет cgroup почему-то не поставился при
старте системы.

После его установки всё получилось _почти_ по этому рецепту:
https://github.com/jackaudio/jackaudio.github.com/wiki/Cgroups#method-2

Распишу подробно, что нужно сделать.

sudo apt-get install cgroup

После этого отредактировать в своём любимом редакторе
/etc/cgconfig.conf, дописав туда
group rtaudio {
        perm {
                task {
                        uid = root;
                        gid = audio;
                }
                admin {
                        uid = root;
                        gid = root;
                }
        }
        cpu {
                cpu.rt_runtime_us = 950000;
        }
}
и /etc/cgrules.conf, прописав туда
@audio   cpu    rtaudio/
(в документации на JACK предлагают писать "@audio:jackd cpu rtaudio/",
но вот как раз это у меня не сработало — а разбираться почему нет ни
знаний, ни мотивации).

После чего выполнить:
sudo systemctl enable cgred
sudo systemctl enable cgconfig
systemctl reboot

Всё, после перезагрузки JACK нормально запускается и работает. Да и
вообще любой процесс, запущенный пользователем из группы audio, может
пользоваться RT-возможностями ядра:
$ chrt -f 80 echo "I'm chrt'ed!"
I'm chrt'ed!
$
(в Альте из коробки вы получите «chrt: failed to set pid 0's policy:
Операция не позволена», даже если нарулили себе доступ к RT через
ulimit).

Отмечу только, что сам Поттеринг ещё в 2015 году попросил выключить
CONFIG_RT_GROUP_SCHED в ядре Fedora, признав (уникальный случай) всю
затею дурацкой и неработающей:
https://bugzilla.redhat.com/show_bug.cgi?id=1229700

Интересно, кто выставил CONFIG_RT_GROUP_SCHED=y в std-def, когда и
(главное) зачем?

Ну ладно. В какое Спортлото теперь написать, чтобы следующий
наступивший на эти грабли не проходил весь квест с нуля?


Подробная информация о списке рассылки community