<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>40868</bug_id>
          
          <creation_ts>2021-09-06 16:47:06 +0300</creation_ts>
          <short_desc>xorg-server: segfault при запуске на device tree системе с дискретной PCIe видеокартой</short_desc>
          <delta_ts>2021-09-16 19:18:39 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch p9</product>
          <component>xorg-server</component>
          <version>не указана</version>
          <rep_platform>aarch64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jqt4</reporter>
          <assigned_to name="Alexey Sheplyakov">asheplyakov</assigned_to>
          <cc>aen</cc>
    
    <cc>asheplyakov</cc>
    
    <cc>asheplyakov</cc>
    
    <cc>iv</cc>
    
    <cc>shrek</cc>
    
    <cc>sin</cc>
          
          <qa_contact name="qa-p9@altlinux.org">qa-p9</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>202392</commentid>
    <comment_count>0</comment_count>
    <who name="">jqt4</who>
    <bug_when>2021-09-06 16:47:06 +0300</bug_when>
    <thetext>В плату TF307-MB-S-D с прошивкой SDK5.2 установлена видеокарта Radeon R7 240.
На эту систему установлен образ alt-workstation-9.2-aarch64.iso
При установке создан файл:
/etc/X11/xorg.conf
Section &quot;Device&quot;
    Identifier &quot;Card0&quot;
    Driver &quot;fbdev&quot;
    BusID &quot;PCI:1:1:0&quot;
EndSection
Это не позволяет использовать аппаратное ускорение.

После удаления файла /etc/X11/xorg.conf при перезапуске xorg-server возникает сбой:
[  2041.732] (EE) Backtrace:
[  2041.732] (EE) 0: X (xorg_backtrace+0x5c) [0x58fd84]
[  2041.732] (EE) 1: X (0x400000+0x193b78) [0x593b78]
[  2041.732] (EE) 2: linux-vdso.so.1 (__kernel_rt_sigreturn+0x0) [0xffffae3767d0]
[  2041.732] (EE) 3: X (0x400000+0x9afbc) [0x49afbc]
[  2041.732] (EE) 4: X (xf86CollectOptions+0x6c) [0x4800b4]
[  2041.732] (EE) 5: /usr/lib64/X11/modules/drivers/radeon_drv.so (0xffffacf17000+0x50268) [0xffffacf67268]
[  2041.732] (EE) 6: X (InitOutput+0x9d8) [0x4836b0]
[  2041.733] (EE) 7: X (0x400000+0x486ec) [0x4486ec]
[  2041.733] (EE) 8: /lib64/libc.so.6 (__libc_start_main+0xe4) [0xffffadbffae4]
[  2041.733] (EE) 9: X (0x400000+0x32360) [0x432360]
[  2041.733] (EE) 
[  2041.733] (EE) Segmentation fault at address 0x124
[  2041.733] (EE) 
Fatal server error:
[  2041.733] (EE) Caught signal 11 (Segmentation fault). Server aborting

Xorg-server был запущен под отладчиком. Результат следующий:
(gdb) set args -logverbose 8 :0
(gdb) run
Starting program: /usr/bin/X -logverbose 8 :0
[Thread debugging using libthread_db enabled]
Using host libthread_db library &quot;/lib64/libthread_db.so.1&quot;.
Missing separate debuginfo for /lib64/libgcc_s.so.1
Try to install the hash file /usr/lib/debug/.build-id/a4/da61bb993adcc95a6eaff904c0f184b5ce0e25.debug

X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
Build Operating System: ALT p9 p9 (Vaccinium) aarch64
Current Operating System: Linux host-192 5.10.52-un-def-alt1 #1 SMP Wed Jul 21 10:14:42 UTC 2021 aarch64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz root=UUID=e41ac917-f4e4-493f-a605-42f74e3c4410 ro resume=/dev/disk/by-uuid/c7eb2efa-9044-4eda-8315-10e557faf731 panic=30 splash
Build Date: 14 April 2021  07:26:50AM
 
Current version of pixman: 0.38.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: &quot;/var/log/Xorg.0.log&quot;, Time: Mon Sep  6 16:01:21 2021
(==) Using config directory: &quot;/etc/X11/xorg.conf.d&quot;
(==) Using system config directory &quot;/usr/share/X11/xorg.conf.d&quot;
Missing separate debuginfo for /usr/lib64/X11/modules/drivers/ati_drv.so
Try to install the hash file /usr/lib/debug/.build-id/9b/11e9453e7573b83764e53910418a84c7519fc2.debug
Missing separate debuginfo for /usr/lib64/X11/modules/drivers/fbdev_drv.so
Try to install the hash file /usr/lib/debug/.build-id/4e/212e58afaeefed28517b103febb62a45ca5247.debug
(II) [KMS] Kernel modesetting enabled.

Program received signal SIGSEGV, Segmentation fault.
0x000000000049afbc in xf86MergeOutputClassOptions (entityIndex=&lt;optimized out&gt;, options=options@entry=0x27f589a0) at xf86platformBus.c:368
368                 if (MATCH_PCI_DEVICES(xf86_platform_devices[i].pdev,
(gdb) bt
#0  0x000000000049afbc in xf86MergeOutputClassOptions (entityIndex=&lt;optimized out&gt;, options=options@entry=0x27f589a0) at xf86platformBus.c:368
#1  0x00000000004800b4 in xf86CollectOptions (pScrn=pScrn@entry=0x27f58620, extraOpts=extraOpts@entry=0x0) at xf86Option.c:83
#2  0x0000ffff8cf8c268 in RADEONPreInit_KMS (pScrn=0x27f58620, flags=&lt;optimized out&gt;) at radeon_kms.c:1805
#3  0x00000000004836b0 in InitOutput (pScreenInfo=pScreenInfo@entry=0x659020 &lt;screenInfo&gt;, argc=argc@entry=4, argv=argv@entry=0xfffffa19dc38) at xf86Init.c:536
#4  0x00000000004486ec in dix_main (argc=4, argv=0xfffffa19dc38, envp=0xfffffa19dc60) at main.c:193
#5  0x0000ffff8dc24ae4 in __libc_start_main (main=0x432310 &lt;main&gt;, argc=4, argv=0xfffffa19dc38, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, 
    stack_end=&lt;optimized out&gt;) at ../csu/libc-start.c:308
#6  0x0000000000432360 in _start () at ../sysdeps/aarch64/start.S:92
Backtrace stopped: previous frame identical to this frame (corrupt stack?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202397</commentid>
    <comment_count>1</comment_count>
    <who name="">jqt4</who>
    <bug_when>2021-09-06 17:47:35 +0300</bug_when>
    <thetext>Проблема воспроизводиться и с платой Radeon R5 230</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202422</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-07 16:11:05 +0300</bug_when>
    <thetext>Скорее всего не хватает

commit 249a12c54a9316b089bd22683c011519348496df
Author: Huacai Chen &lt;chenhc@lemote.com&gt;
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 &quot;pci-&quot; in ID_PATH. To fix this, we implement a strrstr() function
    and use it to search the last &quot;pci-&quot; in ID_PATH, which can get a correct
    BusID.
    
    (backported from commit 9fbd3e43dd9e13700df96b508c3d97f77e2b9f7e)
    
    Reviewed-by: Dave Airlie &lt;airlied@redhat.com&gt;
    Signed-off-by: Huacai Chen &lt;chenhc@lemote.com&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202456</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 13:49:25 +0300</bug_when>
    <thetext>Собственно запуск Xorg я починил:

#284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9

Но от этого не сильно легче. Наблюдаем артефакты, о которых упоминалось в рассылке:

&gt; На обеих картах Radeon, при запуске X-сессии треугольники начинают
&gt; рендерится в хаотичном порядке, что делает десктоп абсолютно
&gt; неработоспособным (см. видео https://files.catbox.moe/xtgcm8.mp4 ).
&gt; Причём проблема затрагивает только вершины непосредственно, а текстуры
&gt; не бьются. При запуске X11, ещё до того, как успевает запуститься
&gt; XFCE, на экране появляется разноцветный ярко выраженный шаблон, что
&gt; сигнализирует, вероятно, о записи мусора в видеопамять каким-то из
&gt; компонентов. В любом случае, блеклистинг всех модулей, относящихся к
&gt; baikal, проблему не исправил.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202457</commentid>
    <comment_count>4</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2021-09-08 13:58:01 +0300</bug_when>
    <thetext>Валерий, прошу обратить внимание. Важно. 
Коллеги, следите за тоном обсуждения, пожалуйста.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202458</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2021-09-08 14:07:05 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #3)
&gt; Собственно запуск Xorg я починил:
&gt; 
&gt; #284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9

https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202459</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2021-09-08 14:08:18 +0300</bug_when>
    <thetext>(In reply to Ivan A. Melnikov from comment #5)
&gt; 
&gt; https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud

^^ примеры треугольников на видео в папке.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202463</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 14:49:54 +0300</bug_when>
    <thetext>На другой плате (и с другой картой 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 &quot;irq&quot; 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 &amp;&amp; modprobe radeon -  снова сообщение &quot;mitx2-bmc 0-0008: PWROFF &quot;irq&quot; detected [17]&quot;

Предполагаю, что видеократа пишет по какому-то &quot;левому&quot; (физическому) адресу.
И так повезло, что именно в этот диапазон отображены регистры BMC.

Как-то стрёмно продолжать эксперименты. Кто знает, куда она ещё запишет, так и плату сжечь недолго.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202464</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 14:55:39 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #7)

&gt; При инициализации radeon и переключении видеовыходов (xrandr --output HDMI-1
&gt; --auto)
&gt; система зачастую перезагружается. 

Круче. При перерисовке экрана, переключении между окнами - тот же эффект.
И ядро &quot;думает&quot;, что нажата кнопка питания (&quot;mitx2-bmc 0-0008: PWROFF &quot;irq&quot; detected&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202465</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 15:02:11 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #7)
&gt; На другой плате (и с другой картой 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202467</commentid>
    <comment_count>10</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2021-09-08 15:27:21 +0300</bug_when>
    <thetext>так это уже к ядру и к радеоновским фирмварям</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202469</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 15:34:42 +0300</bug_when>
    <thetext>(In reply to Valery Inozemtsev from comment #10)
&gt; так это уже к ядру и к радеоновским фирмварям

Сомневаюсь. Это скорее к байкальему PCIe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202470</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 15:40:27 +0300</bug_when>
    <thetext>(In reply to Alexey Sheplyakov from comment #11)
&gt; (In reply to Valery Inozemtsev from comment #10)
&gt; &gt; так это уже к ядру и к радеоновским фирмварям
&gt; 
&gt; Сомневаюсь. Это скорее к байкальему PCIe.

Полагаю, что в обоих случаях проблема одна и та же - карта пыталась записать по одному адресу, а в произошла запись в другой адрес. Только в одном случае (артефакты) неправильный адрес всё-таки попал куда-то в память карты, а в другом (спонтанное выключение) - попал в то место, куда отображены регистры BMC.

Возможно, отображение адресов с (PCIe) шины к адресам процессора неправильно описано (в device tree). А возможно, само оборудование глючное.

Возможно отображение адресов с шины к CPU сломано. И в одном случае (артефакты &quot;везёт&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202473</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 16:03:31 +0300</bug_when>
    <thetext>Проверил 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202482</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-08 16:55:57 +0300</bug_when>
    <thetext>Проверил Xorg из задания #284832 на raspberry pi 4b (с 4ГБ памяти).
Запускается и упорно делает вид, что работает.
Аппаратное ускорение рендеринга доступно (судя по glxinfo и glmark2-es2).

$ glxinfo | grep Vendor
     Vendor: Broadcom (0x14e4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202488</commentid>
    <comment_count>15</comment_count>
    <who name="">jqt4</who>
    <bug_when>2021-09-08 17:31:47 +0300</bug_when>
    <thetext>Проверил 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).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202507</commentid>
    <comment_count>16</comment_count>
    <who name="">jqt4</who>
    <bug_when>2021-09-08 19:16:07 +0300</bug_when>
    <thetext>Проверил Xorg из задания #284832 на ноутбуке Dell Inspiron 15 7577, на 2-х мониторах - встроенном и подключенном к HDMI Type-C
Работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202540</commentid>
    <comment_count>17</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2021-09-09 12:34:00 +0300</bug_when>
    <thetext>в таком случае эти комиты нужно вернуть в иксы в sisyphus/p10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202585</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-09 22:07:33 +0300</bug_when>
    <thetext>Протестировал на x86_64 виртуальных машинах с &quot;видеокартами&quot; qxl и virtio. Ядро 5.10.62-un-def-alt1.

Xorg запускается и упорно делает вид, что работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202869</commentid>
    <comment_count>19</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2021-09-16 19:18:39 +0300</bug_when>
    <thetext>xorg-server-2:1.20.8-alt9 -&gt; p9:

 Wed Sep 08 2021 Alexey Sheplyakov &lt;asheplyakov@altlinux&gt; 2:1.20.8-alt9
 - Fixed probing for device tree based PCIe buses (closes: #40868)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>