Summary: | xorg-server: segfault при запуске на device tree системе с дискретной PCIe видеокартой | ||
---|---|---|---|
Product: | Branch p9 | Reporter: | jqt4 |
Component: | xorg-server | Assignee: | Alexey Sheplyakov <asheplyakov> |
Status: | CLOSED FIXED | QA Contact: | qa-p9 <qa-p9> |
Severity: | major | ||
Priority: | P5 | CC: | aen, asheplyakov, asheplyakov, iv, shrek, sin |
Version: | не указана | ||
Hardware: | aarch64 | ||
OS: | Linux |
Description
jqt4
2021-09-06 16:47:06 MSK
Проблема воспроизводиться и с платой Radeon R5 230 Скорее всего не хватает commit 249a12c54a9316b089bd22683c011519348496df Author: Huacai Chen <chenhc@lemote.com> Date: Sun Jul 5 05:59:58 2020 -0400 linux: Fix platform device probe for DT-based PCI On a DT-base PCI platform, the sysfs path of vga device is like this: /sys/devices/platform/bus@10000000/1a000000.pci/pci0000:00/0000:00:11.0/0000:04:00.0. Then the ID_PATH from udev is platform-1a000000.pci-pci-0000:04:00.0 and the BusID will be pci-0000:04:00.0, which causes Xorg start fail. This is because config_udev_odev_setup_attribs() use strstr() to search the first "pci-" in ID_PATH. To fix this, we implement a strrstr() function and use it to search the last "pci-" in ID_PATH, which can get a correct BusID. (backported from commit 9fbd3e43dd9e13700df96b508c3d97f77e2b9f7e) Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Huacai Chen <chenhc@lemote.com> Собственно запуск Xorg я починил:
#284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9
Но от этого не сильно легче. Наблюдаем артефакты, о которых упоминалось в рассылке:
> На обеих картах Radeon, при запуске X-сессии треугольники начинают
> рендерится в хаотичном порядке, что делает десктоп абсолютно
> неработоспособным (см. видео https://files.catbox.moe/xtgcm8.mp4 ).
> Причём проблема затрагивает только вершины непосредственно, а текстуры
> не бьются. При запуске X11, ещё до того, как успевает запуститься
> XFCE, на экране появляется разноцветный ярко выраженный шаблон, что
> сигнализирует, вероятно, о записи мусора в видеопамять каким-то из
> компонентов. В любом случае, блеклистинг всех модулей, относящихся к
> baikal, проблему не исправил.
Валерий, прошу обратить внимание. Важно. Коллеги, следите за тоном обсуждения, пожалуйста. (In reply to Alexey Sheplyakov from comment #3) > Собственно запуск Xorg я починил: > > #284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9 https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud (In reply to Ivan A. Melnikov from comment #5) > > https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud ^^ примеры треугольников на видео в папке. На другой плате (и с другой картой Radeon) артефактов пока не заметил. НО не спешите радоваться! При инициализации radeon и переключении видеовыходов (xrandr --output HDMI-1 --auto) система зачастую перезагружается. В логах: [ 14.833379] [drm] radeon kernel modesetting enabled. [ 14.834180] [drm] initializing kernel modesetting (OLAND 0x1002:0x6617 0x1DA2:0xE263 0xC7). [ 15.076486] mitx2-bmc 0-0008: key change [17] [ 15.076509] mitx2-bmc 0-0008: PWROFF "irq" detected [17] [ 15.163665] ATOM BIOS: OLAND [ 15.163839] radeon 0001:01:00.0: VRAM: 4096M 0x0000000000000000 - 0x00000000FFFFFFFF (4096M used) [ 15.163845] radeon 0001:01:00.0: GTT: 2048M 0x0000000100000000 - 0x000000017FFFFFFF [ 15.163850] [drm] Detected VRAM RAM=4096M, BAR=256M [ 15.163854] [drm] RAM width 128bits DDR [ 15.164053] [TTM] Zone kernel: Available graphics memory: 8043486 KiB [ 15.164058] [TTM] Zone dma32: Available graphics memory: 2097152 KiB [ 15.164061] [TTM] Initializing pool allocator [ 15.164074] [TTM] Initializing DMA pool allocator [ 15.164125] [drm] radeon: 4096M of VRAM memory ready [ 15.164130] [drm] radeon: 2048M of GTT memory ready. [ 15.164167] [drm] Loading oland Microcode [ 15.178479] mitx2-bmc 0-0008: key change [0] Кнопку я точно не нажимал. Кроме того, rmmod radeon && modprobe radeon - снова сообщение "mitx2-bmc 0-0008: PWROFF "irq" detected [17]" Предполагаю, что видеократа пишет по какому-то "левому" (физическому) адресу. И так повезло, что именно в этот диапазон отображены регистры BMC. Как-то стрёмно продолжать эксперименты. Кто знает, куда она ещё запишет, так и плату сжечь недолго. (In reply to Alexey Sheplyakov from comment #7) > При инициализации radeon и переключении видеовыходов (xrandr --output HDMI-1 > --auto) > система зачастую перезагружается. Круче. При перерисовке экрана, переключении между окнами - тот же эффект. И ядро "думает", что нажата кнопка питания ("mitx2-bmc 0-0008: PWROFF "irq" detected") (In reply to Alexey Sheplyakov from comment #7) > На другой плате (и с другой картой Radeon) артефактов пока не заметил. 0001:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 6617 (rev c7) (prog-if 00 [VGA controller]) Subsystem: Sapphire Technology Limited Device e263 она же (если в числовой форме) 0001:01:00.0 0300: 1002:6617 (rev c7) (prog-if 00 [VGA controller]) Subsystem: 1da2:e263 так это уже к ядру и к радеоновским фирмварям (In reply to Valery Inozemtsev from comment #10) > так это уже к ядру и к радеоновским фирмварям Сомневаюсь. Это скорее к байкальему PCIe. (In reply to Alexey Sheplyakov from comment #11) > (In reply to Valery Inozemtsev from comment #10) > > так это уже к ядру и к радеоновским фирмварям > > Сомневаюсь. Это скорее к байкальему PCIe. Полагаю, что в обоих случаях проблема одна и та же - карта пыталась записать по одному адресу, а в произошла запись в другой адрес. Только в одном случае (артефакты) неправильный адрес всё-таки попал куда-то в память карты, а в другом (спонтанное выключение) - попал в то место, куда отображены регистры BMC. Возможно, отображение адресов с (PCIe) шины к адресам процессора неправильно описано (в device tree). А возможно, само оборудование глючное. Возможно отображение адресов с шины к CPU сломано. И в одном случае (артефакты "везёт" Проверил Xorg из задания #284832 на x86 компьютере [1]. Упорно делает вид, что работает [1] Core i5-8400, материнская плата Gigabyte H310M S2H 2.0 00:02.0 0300: 8086:3e92 (prog-if 00 [VGA controller]) DeviceName: Onboard - Video Subsystem: 1458:d000 00:02.0 VGA compatible controller: Intel Corporation CometLake-S GT2 [UHD Graphics 630] (prog-if 00 [VGA controller]) DeviceName: Onboard - Video Subsystem: Gigabyte Technology Co., Ltd Device d000 Проверил Xorg из задания #284832 на raspberry pi 4b (с 4ГБ памяти). Запускается и упорно делает вид, что работает. Аппаратное ускорение рендеринга доступно (судя по glxinfo и glmark2-es2). $ glxinfo | grep Vendor Vendor: Broadcom (0x14e4) Проверил Xorg из задания #284832 на raspberry pi 4b (с 8ГБ памяти), raspberry pi 3b V1.2, raspberry pi 400, на всех с ядрами 5.10.50-rpi-def 5.12.17-rpi-un. Pаботает. Аппаратное ускорение рендеринга доступно (судя glmark2-es2). Проверил Xorg из задания #284832 на ноутбуке Dell Inspiron 15 7577, на 2-х мониторах - встроенном и подключенном к HDMI Type-C Работает. в таком случае эти комиты нужно вернуть в иксы в sisyphus/p10 Протестировал на x86_64 виртуальных машинах с "видеокартами" qxl и virtio. Ядро 5.10.62-un-def-alt1. Xorg запускается и упорно делает вид, что работает. xorg-server-2:1.20.8-alt9 -> p9: Wed Sep 08 2021 Alexey Sheplyakov <asheplyakov@altlinux> 2:1.20.8-alt9 - Fixed probing for device tree based PCIe buses (closes: #40868) |