LINUX.ORG.RU

Вредный совет в ArchWiki по поводу nvidia-settings = фризы

 , ,


0

2

Короче, как-то так получилось, что у меня уж давненько наблюдались микрофризы на нвидии 1080. В принципе, не сильно мешали даже в игрушках, так что привык, а разбираться было лень, грешил на драйвера или на недостатки общей конфигурации пекарни. А тут решил посмотреть на ФПСы, поставил mangohud и заметил, что пики на графике frametime, которые сопровождают эти фризы, следуют равномерно через 3 секунды. Опа, думаю, значит, что-то периодически дёргается в фоне. Оказалось — какое-то время назад добавил виджеты кде-шного рабочего стола, показывающие скорость вращения вентиляторов (тупо вывод cat /sys/class/hwmon/.../ fan?_input). Но вот тот, который показывает скорость вентилятора видяхи, за неимением соответствующей записи в /sys, дёргал, по совету из Арчевики, nvidia-settings -q GPUCurrentFanSpeedRPM -t, таки каждые 3 секунды. Я хз, чем это поделие там занимается ради вывода одного-единственного параметра, но таки вот. При этом та же nvidia-smi таким не страдает (но она текущую RPM выводить не умеет, только уставку скорости в процентах). Быстренько переделал утилитку из примеров libXNVCtrl, чтобы выводила нужную скорость, и щас наслаждаюсь идеальными 60 FPS в игрухах.

Тут ещё косяк KDE, конечно — за каким чёртом регулярно обновлять виджеты, когда запущен полноэкранный режим? Композитинг-то отключать научились, а вот это…

Edit: Вижу, требуется пояснение, в чём именно заключается вредность совета. Как выяснилось, nvidia-settnings ради чтения одного-единственного параметра на какую-то долю секунды ставит колом всю видеоподсистему. И это монстроидальное поделие рекомендуется в Арчевики для индикации параметров, например, в conky, что предполагает периодический вызов. А это, на минуточку, при периоде в 3 с, как был у меня — 1200(!) вызовов в час, или 28800(!!) в сутки. (Я тут даже подозреваю, что и глюк с перемежающимися GPF’ами плазмы, заканчивающимися паникой ядра, с которым я бьюсь уже года два — тоже, не исключено, был вызван этим гениальным поделием нвидиевских индусокодеров. Но это требует тестирования хотя бы на протяжении месяца.)

★★★★

Последнее исправление: alegz (всего исправлений: 3)

У меня такая же херня была в Gnome3 я себе часы сделал с секундами, ну так вот оно раз в секунду дрыгало FPS. Причём ощущение такие что не лаг, не тормоза, а просто время кадра рассчитывалось неверно и визуально видны скачки картинки особенно если какой плавный пролёт камеры или типа того.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Noob_Linux

Работа сраного виджета читающего из /sys/class/blabla вообще влиять не должна ни на что. Проблема глубже.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от Noob_Linux

Лоровские игзперды читать не умеют, разумеется. Причём тут «виджет» вообще, когда фризы вызываются исключительно при запуске nvidia-settings? И «пост на лоре» именно для того, чтобы рассказать, что nvidia-settings — тормозное говно, и запускать его для периодического выполнения не надо.

виджетописатель опирался на арчевику?)))

«Виджетописатель» в данном случае — я, и строку для отображения оборотов взял как раз из арчевики.

alegz ★★★★
() автор топика
Ответ на: комментарий от alegz

Ну в ОП ни слова о том что ты писал этот виджет.

Оказалось — какое-то время назад добавил виджеты кде-шного рабочего стола, показывающие скорость вращения вентиляторов

из всего этого я понял только что он сам в инвидию ходит)

ну и да, погонял свою невидию, микрофризов не замечено. Арч, без кде.

Noob_Linux ★★★★
()
28 января 2023 г.

И таки да, больше месяца тестирования — ни одного GPF’а с паникой, которые раньше я ловил чуть не раз в неделю (а бывало, и пару дней подряд). Заставляет, конечно, задуматься над надёжностью изоляции памяти в линуксе, если сраный глючный виджет может уронить систему целиком. Не помню, писал ли я где об этом подробней, но начиналось это вот так:

Nov 20 21:21:39 <host> kernel: [156512.872305] general protection fault, probably for non-canonical address 0xfffea22d40242f00: 0000 [#1] PREEMPT SMP PTI
Nov 20 21:21:39 <host> kernel: [156512.872310] CPU: 5 PID: 27021 Comm: plasmashell Tainted: P           OE      6.0.3-<host>1-p-1000 #1

и, спустя 27 минут и 18 метров сислога, заканчивалось вот так:

Nov 20 21:38:57 <host> kernel: [157550.992659] rcu: INFO: rcu_preempt self-detected stall on CPU
Nov 20 21:38:57 <host> kernel: [157550.992674] rcu:     5-....: (20999 ticks this GP) idle=e004/1/0x4000000000000000 softirq=4873936/4873936 fqs=5241
Nov 20 21:38:57 <host> kernel: [157550.992678]  (t=21000 jiffies g=15100841 q=1082 ncpus=8)
Nov 20 21:38:57 <host> kernel: [157550.992681] NMI backtrace for cpu 5
Nov 20 21:38:57 <host> kernel: [157550.992682] CPU: 5 PID: 62 Comm: kcompactd0 Tainted: P      D W  OE      6.0.3-<host>1-p-1000 #1
alegz ★★★★
() автор топика