Я заморочен звуком, и недавно случайно узнал, что приоритеты потоков влияют на звук (обратное мне доказывать не надо здесь). Постараюсь описать проблему. Речь пойдет о rtirq-init (это пакет, который повышает приоритеты потоков, относящиеся к звуку). Кроме его установки, есть конфиг sudo nano /etc/default/rtirq, приведу его фрагмент:
# IRQ thread service names
# (space separated list, from higher to lower priority).
RTIRQ_NAME_LIST="rtc snd usb i8042"
# Highest priority.
RTIRQ_PRIO_HIGH=90
# Priority decrease step.
RTIRQ_PRIO_DECR=5
# Lowest priority.
RTIRQ_PRIO_LOW=51
# Whether to reset all IRQ threads to SCHED_OTHER.
RTIRQ_RESET_ALL=0
# On kernel configurations that support it,
# which services should be NOT threaded
# (space separated list).
RTIRQ_NON_THREADED="rtc snd"
Тут есть параметр RTIRQ_PRIO_HIGH=90. В комбинации с моими остальными настройками и в моей конкретной системе звук меняется до неузнаваемости, если 90 поменять на 95, затем перезапустить плеер mpd. Но проблема в том, что после перезагрузки системы, когда этот параметр сразу имеет значение 95, звук совсем не тот! Это совершенно не того уровня звук, а намного-намного ниже.
Моя гипотеза, что когда я меняю с 90 на 95 (именно столько, потому что на слух подбирал), и перезапускаю mpd, то лишь некоторые процессы (потоки) меняют приоритет, а часть не меняют (даже если rtirg подразумевает другой приоритет) и приоритеты встают в правильном порядке . А после перезагрузки системы каждый поток встает так, как ему укажет rtirg.
К сожалению, пока не знаю, куда копать. Но варианта 2. Либо написать код, который бы менял этот параметр автоматически. Либо как-то установить приоритеты вручную (а перед этим узнать их порядок для всех звуковых приложений). Либо методом тыка натыкать, но это долго и нудно.
Что вы посоветуете? Как узнать порядок приложений по приоритету, когда все работает? Чтобы хотя бы знать, в чем отличие до и после перезагрузки. Может быть, достаточно немного поменять код.