LINUX.ORG.RU

Профилирование X11

 , ,


0

1

Это фактически продолжение темы: Тормозит ресайз окон в KDE5.

Тормоза достигли просто космических масштабов. Сейчас при ресайзе Gwenview X съедает одно ядро полностью и всё страшно лагает. Не понимаю - это только у меня так или это общая болезнь kde+nvidia.

Пытаюсь понять кого винить: блоб nvidia, kde или X11.

Все настройки стандартные. Разве что в xorg.conf:

Option         "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

В Xorg.0.log, dmesg, etc - ничего подозрительного. Разве что в ~/.local/share/sddm/xorg-session.log:

тонны:
file:///usr/lib64/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null

и тонны (у kate):
QXcbConnection: XCB error: 3 (BadWindow), sequence: 33242, resource id: 38202169, major code: 3 (GetWindowAttributes), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 33246, resource id: 38202170, major code: 3 (GetWindowAttributes), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 33247, resource id: 38202170, major code: 14 (GetGeometry), minor code: 0

Багрепорты на трекере KDE создавал - там винят nvidia.

Возможно есть какой-то ман по профилированию иксов. Не подключатся же к ним через perf...

PS: пробовал xfce - такие-же тормоза. Железе тоже отпадает, ибо на десяточке всё идеально.

Последний багрепорт: https://bugs.kde.org/show_bug.cgi?id=385955, https://bugs.freedesktop.org/show_bug.cgi?id=103362

★★★★★

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

блоб nvidia, kde или X11

Попробуй менять по одному параметру.
Сначала смени nvidia на nouveau.
Потом верни nouveau и попробуй где-то кроме kde
С заменой иксов чисто не выйдет, но можно ещё покомбинировать предыдущие два пункта на nouveau + не kde

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

Разве на nouveau есть жизнь? Я на лине в игры не играю, может и сойдёт.

Иксы менять не на что, ибо nvidia не дружит с вяленым.

Собирать гном ради этого тупо... По livecd сложно что-то сказать.

Есть ненулевой шанс, что у меня лаги из-за конфликта конфигов, use флагов и конфига ядра.

PS: генту я 6 лет назад поставил. Сомневаюсь что чистая установка поможет, это же не винда, но кто его знает. Тем более, что чистый профиль лаги не исправил.

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

Разве на nouveau есть жизнь?

Есть, или нет — не важно. Я просто предложил проверить ресайз.
Кстати, а какой бэкенд стоит у кде для отрисовки? Можно ещё там попробовать что-то поменять.

Есть ненулевой шанс, что у меня лаги из-за конфликта конфигов, use флагов и конфига ядра.

У меня чуть проще ситуация уже лет пять. На ноуте интел, на стационаре амд. И точно другие версии и наверняка другие флаги сборки.
Кстати, можно бы их и показать.
Ещё можно с версиями драйвера поиграться. В сторону даунгрейда. Когда сидел с nvidia никогда не мог понять, по какому принципу версии nvidia объявляют стабильными. Часто беты работали куда лучше.

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

Я просто предложил проверить ресайз.

Посмотрел их таблицу - 9xx не поддерживается ещё.

Кстати, а какой бэкенд стоит у кде для отрисовки?

raster. Пробовал другие - без результата. Или вы про opengl/xrender? opengl 3.1. Менял - без результата.

Кстати, можно бы их и показать.

Конфиг ядра?

Сегодня поставил арч для тестов - лаги 1в1. Видимо проблема в связке железа.

Нужно будет ещё gnome и xfce накатить на арч. Что бы определить kde виноват или X11 + nvidia.

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Я им не умею пользоваться + нужно, скорее всего, собрать xorg с отладочной информацией, иначе я ничего толкового не увижу.

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

Хм... Там вряд ли будет что-то внятное. Скорее всего, X.org занят обработкой ошибок в бешенном темпе. Но проверить всё равно стоит. Достаточно просто perf top запустить.

А вот эти BadWindow и BadDrawable — что-то очень странное. У тебя куда-то окна пропадают.

Есть ещё шанс, что это какое-то несовпадение с 24/32 бит не пиксель. Что-то я такое про NVIDIA помню: везде прокатывало, а на драйверах NVIDIA фейлилось.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

У тебя куда-то окна пропадают.

kate лагает после alt-tab, но не пропадает.

Надыбал x11perf, но он тестить скорость отрисовки. Там всё довольно шустро. Хотя хз с чем сравнивать.

А вот уже perf:

    34.18%  [nvidia]                 [k] _nv028452rm
    28.22%  [kernel]                 [k] pci_conf1_read
     7.02%  [nvidia]                 [k] _nv017381rm
     2.73%  [vdso]                   [.] 0x0000000000000909
     1.85%  [vdso]                   [.] __vdso_gettimeofday
     0.90%  nvidia_drv.so (deleted)  [.] 0x00000000000a0b70
     0.85%  [kernel]                 [k] _raw_spin_lock_irqsave
     0.64%  nvidia_drv.so (deleted)  [.] 0x00000000000d1ca1
     0.64%  nvidia_drv.so (deleted)  [.] 0x00000000000d1d72
     0.62%  [kernel]                 [k] _raw_write_unlock_irqrestore
     0.56%  nvidia_drv.so (deleted)  [.] 0x00000000000d1c90
     0.52%  nvidia_drv.so (deleted)  [.] 0x00000000000d1c50
     0.50%  [kernel]                 [k] preempt_count_sub
     0.48%  [nvidia]                 [k] _nv009414rm
     0.44%  nvidia_drv.so (deleted)  [.] 0x00000000000d1c6a
     0.42%  nvidia_drv.so (deleted)  [.] 0x000000000005e66e
     0.42%  nvidia_drv.so (deleted)  [.] 0x00000000000d1cad
     0.40%  [vdso]                   [.] 0x0000000000000907

ЧТД...

Ещё perf спамит:

/usr/lib64/libnvidia-glcore.so.384.90 was updated (is prelink enabled?). Restart the long running apps that use it!
/usr/lib64/opengl/nvidia/extensions/libglx.so.384.90 was updated (is prelink enabled?). Restart the long running apps that use it!

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

но не пропадает.

Это не так работает. Приложение заказывает себе какой-нибудь Drawable для offscreen рисования. Что-то делает с ним, а потом ему X.org говорит: «а нет у тебя Drawable. Не знаю, что ты мне тут прислал. Такого ID нет.»

Или приложение заказывает себе Drawable, пытается в него рисовать, но параметры рисовалки не соответствуют Drawable.

nvidia_drv.so (deleted)

Ты обновлял драйвера, но не перезагрузился.

34.18% [nvidia] [k] _nv028452rm

Непосредственный виновник — модуль ядра. Но всё ещё возможно, что его часто просят выполнить какие-то операции из user-space.

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

Доу. Перезагрузился.

   PerfTop:    2762 irqs/sec  kernel:91.6%  exact:  0.0% [4000Hz cycles],  (target_pid: 4685)
----------------------------------------------------------------------------------------------

    38.53%  [nvidia]          [k] _nv028452rm
    35.24%  [kernel]          [k] pci_conf1_read
     6.14%  [nvidia]          [k] _nv017381rm
     1.12%  [kernel]          [k] _raw_spin_lock_irqsave
     0.97%  [nvidia]          [k] _nv009414rm
     0.81%  [kernel]          [k] _raw_write_unlock_irqrestore
     0.62%  [kernel]          [k] preempt_count_sub
     0.41%  nvidia_drv.so     [.] 0x00000000000a0b70
     0.41%  [kernel]          [k] preempt_count_add
     0.35%  [vdso]            [.] 0x0000000000000909
     0.31%  [nvidia]          [k] _nv017360rm
     0.27%  [nvidia]          [k] _nv017552rm
     0.26%  nvidia_drv.so     [.] 0x00000000000d1d72
     0.25%  [vdso]            [.] __vdso_gettimeofday
     0.24%  nvidia_drv.so     [.] 0x00000000000d1ca1
     0.24%  nvidia_drv.so     [.] 0x00000000000d1c90
     0.20%  [nvidia]          [k] _nv019905rm
     0.20%  nvidia_drv.so     [.] 0x00000000000d1cad
     0.19%  nvidia_drv.so     [.] 0x00000000000cf022
     0.18%  [nvidia]          [k] _nv030640rm
     0.18%  nvidia_drv.so     [.] 0x00000000000d1c04
     0.17%  [nvidia]          [k] 0x0000000000341de2
     0.17%  [kernel]          [k] page_fault
     0.16%  nvidia_drv.so     [.] 0x00000000000d1c53
     0.16%  [nvidia]          [k] 0x00000000003cad5d
     0.16%  nvidia_drv.so     [.] 0x00000000000d1c69
     0.16%  [nvidia]          [k] _nv024815rm
     0.16%  [nvidia]          [k] _nv019581rm
     0.16%  nvidia_drv.so     [.] 0x00000000000d1d2d
     0.16%  nvidia_drv.so     [.] 0x00000000000d1d27

Без ресайза:

   PerfTop:     118 irqs/sec  kernel:13.6%  exact:  0.0% [4000Hz cycles],  (target_pid: 4685)
----------------------------------------------------------------------------------------------

    11.97%  [vdso]            [.] 0x0000000000000909
     8.92%  [vdso]            [.] __vdso_gettimeofday
     8.57%  [nvidia]          [k] _nv028452rm
     8.44%  [kernel]          [k] pci_conf1_read
     3.77%  nvidia_drv.so     [.] 0x00000000000cf022
     2.05%  nvidia_drv.so     [.] 0x000000000005e66e
     1.74%  nvidia_drv.so     [.] 0x00000000000b4c7e
     1.56%  [nvidia]          [k] _nv017381rm
     1.53%  [vdso]            [.] 0x0000000000000907
     1.49%  nvidia_drv.so     [.] 0x00000000000a0b70
     1.11%  nvidia_drv.so     [.] 0x00000000000d1c90
     1.09%  nvidia_drv.so     [.] 0x00000000000d1c50
     1.01%  nvidia_drv.so     [.] 0x00000000000d1c6a
     0.97%  nvidia_drv.so     [.] 0x00000000000d1d72
     0.96%  nvidia_drv.so     [.] 0x00000000000d1cad
     0.79%  nvidia_drv.so     [.] 0x00000000000d1c69
     0.78%  nvidia_drv.so     [.] 0x00000000000d1c04
     0.75%  nvidia_drv.so     [.] 0x00000000000d1ca1
     0.70%  nvidia_drv.so     [.] 0x00000000000d1d12
     0.63%  nvidia_drv.so     [.] 0x000000000005e654
     0.59%  nvidia_drv.so     [.] 0x00000000000d1d2d
     0.58%  nvidia_drv.so     [.] 0x00000000000d1c53
     0.57%  nvidia_drv.so     [.] 0x00000000000d1d27
     0.56%  nvidia_drv.so     [.] 0x00000000000d1d20
     0.56%  nvidia_drv.so     [.] 0x00000000000d1dd1
     0.52%  nvidia_drv.so     [.] 0x00000000000d1c59
     0.52%  [vdso]            [.] 0x000000000000091c
     0.52%  nvidia_drv.so     [.] 0x000000000005e667
     0.50%  nvidia_drv.so     [.] 0x00000000000d2493
     0.49%  [kernel]          [k] preempt_count_add

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)

Обновил драйвер - стало немного лучше. Есть подозрение, что виноват X + nvidia. Увы, проверить не на чем, ибо в наличии есть только интеловская HD 4000.

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Следующий шаг — выяснить, что дёргает модуль nvidia. Самый наглядный способ — на flamegraph посмотреть.

Вкратце это делается так:

# git clone https://github.com/brendangregg/FlameGraph
# cd FlameGraph
# perf record -F 99 -a -g -- sleep 60
# perf script | ./stackcollapse-perf.pl > out.perf-folded
# ./flamegraph.pl out.perf-folded > perf-kernel.svg

Ну и конечно, пока perf record записывает данные, нужно пытаться воспроизвести ситуацию, в которой возникают тормоза.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

В общем, в этом графике стоит искать большие горизонтальные участки, и смотреть, откуда туда приходят вызовы. Длинный горизонтальный участок не означает, что это был один вызов, это может быть множество вызовов, у которых бектрейсы совпали.

«Unknown» станет меньше, если соответствующие бинарники собрать с отладочной инфой. Может, что-то прояснится по именам.

Кстати, perf record можно нацелить на конкретный pid. Ключ -p.

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

Кстати, perf record можно нацелить на конкретный pid. Ключ -p.

Так и делал. Но он мне писал что нельзя и мол сброшено на SYSTEM.

Попробую собрать иксы с отладочной инфой.

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Есть ещё вариант в выводе perf report полазить, там показываются вызывающие функции. Но я сколько ни пытался разобраться в его выводе, так и не осилил.

И, наверное, тут мои скилы кончаются. Не знаю, куда там дальше смотреть и что делать.

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

Ок. И на том спасибо. Посмотрим, может чего в багтрекерах напишут.

На багтрекере KDE уже успешно «закрыли» (RESOLVED INVALID), как и предыдущие...

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

На багтрекере KDE уже успешно «закрыли» (RESOLVED INVALID), как и предыдущие...

Ну они правы в каком-то смысле. Если бы баг был в KWin, он затронул бы большее число людей. Тут пока ты не докажешь, что это именно баг у них, смысл дёргаться?

И держать открытым баг тоже смысла нет. Ну вот держал я баги открытыми, хотя точно знал, где в другом софте баги, и даже места конкретные указывал, с багрепортами. И знаешь, как-то само по себе не починилось. А чинить апстримы мне лениво. Это надо тщательно вникать, сопровождающих дёргать. Медленно и тяжко.

В общем, нет смысла держать открытым баг, по которому непонятно, что делать.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Вся суть таких проектов, разрабы попивая смузи под виндавс десяточкой запускают убунту с софтрендером в виртуалке и им достаточно, что оно там работает. Они же не наркоманы действительно пользватся своими поделиями в реальных условиях.

anonymous
()

У меня Emerald, неплохо ресайзится стандартная красная тема, и тема Windows 8. Остальные рамочки тормозят. Я пробовал три разных рамки Windows Vista/7, две тормозят, одна нет. Из чего я сделал вывод, что рамочки ещё и надо грамотно делать.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от i-rinat

Что-то подобное было у меня на xfwm4 с предыдущей версией блоба, только тупил не ресайз, а перетаскивание окон. С последним обновлением дров (387.12, арч) проблема ушла.

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 1)

Лол :-) Предложи им свои услуги по переписыванию иксов на Расте :-) Лол :-)

anonymous
()
21 сентября 2019 г.

Пальцем в небо - попробуй в эффектах блюр отключить (если включен и используется).

На старой карте nvidia из-за него была дикая просадка FPS, пришлось отключить.

Ja-Ja-Hey-Ho ★★★★
()

Лол :-) Предложи им свои услуги по переписыванию иксов на Расте :-) Лол :-)

Лол :-)

anonymous
()
Ответ на: комментарий от i-rinat

Ты обвиняешь меня в том, что я писал кадые?

anonymous
()

А уже предлагали грохнуть конфиги? У меня на арче тож плазма жрала, пока не грохнул.

kuzulis ★★
()
Последнее исправление: kuzulis (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.