I think it is better to have a separate thread about all the effort to get it working.
For historical context: ASRock Rack Ampere bundle - #40 by Civiloid and below are the original messages.
Current status:
Modesetting: works after a patch
DRM: Hangs on start
HW I have:
GPU: Intel Arc 750
MB: Asrock ALTRAD8UD-1L2T
CPU: Altra Q64-22
Kernel: latest (6.9-git from master from ~5th of May, will update it at some point)
What has been done:
First note - card barely fits because it is large. It doesn’t fit into last two slots because they are too close to the battery. See photos in the original thread: ASRock Rack Ampere bundle - #44 by Civiloid
Attempt to just compile Xe kernel module and start gdm - compiles just fine, module OOPSes on load with:
[ 57.555741] xe 0004:04:00.0: [drm] Using GuC firmware from i915/dg2_guc_70.bin version 70.20.0
[ 57.581832] xe 0004:04:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
[ 57.581848] Unable to handle kernel paging request at virtual address ffffffffc08003cc
[ 57.589768] Mem abort info:
[ 57.592561] ESR = 0x0000000096000006
[ 57.596305] EC = 0x25: DABT (current EL), IL = 32 bits
[ 57.601615] SET = 0, FnV = 0
[ 57.604663] EA = 0, S1PTW = 0
[ 57.607794] FSC = 0x06: level 2 translation fault
[ 57.612668] Data abort info:
[ 57.615538] ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[ 57.621026] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 57.626075] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 57.631384] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000801c6b7d000
[ 57.638083] [ffffffffc08003cc] pgd=1800081fffcc6003, p4d=00000801c760a003, pud=00000801c760b003, pmd=0000000000000000
[ 57.648696] Internal error: Oops: 0000000096000006 [#1] SMP
[ 57.654259] Modules linked in: xe(+) snd_seq_dummy snd_hrtimer snd_seq snd_seq_device qrtr snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hda_core aes_ce_blk aes_ce_cipher polyval_ce snd_hwdep polyval_generic snd_pcm ghash_ce gf128mul snd_timer acpi_ipmi snd sha2_ce soundcore sha256_arm64 ipmi_ssif sbsa_gwdt sha1_ce arm_spe_pmu ipmi_devintf binfmt_misc arm_cmn ipmi_msghandler xgene_hwmon nls_ascii nls_cp437 vfat fat arm_dsu_pmu cppc_cpufreq joydev acpi_tad evdev dm_mod loop efi_pstore dax configfs nfnetlink efivarfs ip_tables x_tables autofs4 ext4 crc32c_generic crc16 cdc_ether mbcache usbnet jbd2 mii hid_generic usbhid hid drm_gpuvm drm_exec drm_buddy gpu_sched nvme video drm_suballoc_helper drm_ttm_helper ttm cec nvme_core rc_core ixgbe t10_pi drm_display_helper xhci_pci xfrm_algo mdio_devres xhci_hcd drm_kms_helper of_mdio crc64_rocksoft fixed_phy crc64 fwnode_mdio crc_t10dif drm usbcore igb crct10dif_generic libphy crct10dif_ce crct10dif_common mdio usb_common i2c_algo_bit i2c_designware_platform
[ 57.654393] i2c_designware_core [last unloaded: xe]
[ 57.748068] CPU: 0 PID: 7 Comm: kworker/0:0 Tainted: G U 6.9.0-rc6+ #4
[ 57.755975] Hardware name: ALTRAD8UD-1L2T/ALTRAD8UD-1L2T, BIOS 2.05 04/12/2024
[ 57.763272] Workqueue: events work_for_cpu_fn
[ 57.767623] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 57.774575] pc : logic_inb+0xa0/0xe0
[ 57.778145] lr : intel_vga_reset_io_mem+0x38/0x68 [xe]
[ 57.783547] sp : ffff8000802dbaa0
[ 57.786850] x29: ffff8000802dbaa0 x28: ffffa9bdd90e9928 x27: 0000000000000000
[ 57.793978] x26: 0000000000000001 x25: 0000000000000002 x24: ffff07ff82cfb0c8
[ 57.801105] x23: ffffa9bdd90f6c38 x22: ffff07ffa8901000 x21: 0000000000000000
[ 57.808232] x20: 0000000000000000 x19: ffff07ff82cfb000 x18: ffffffffffffffff
[ 57.815358] x17: 2c6d656d2b6f693d x16: ffffa9be0b0be3c8 x15: 6c6f203a6465676e
[ 57.822484] x14: 616863207365646f x13: 656e6f6e3d736e77 x12: ffff081eef6e0000
[ 57.829610] x11: 0000000000000001 x10: 0000000000000001 x9 : ffffa9be0aa2702c
[ 57.836737] x8 : c0000000ffffbfff x7 : ffffa9be0ca1c120 x6 : 00000000000000ff
[ 57.843863] x5 : ffffa9be0b659f10 x4 : 000000000000000a x3 : 0000000000000000
[ 57.850989] x2 : 0000000000ffbffe x1 : 00000000000003cc x0 : ffffffffc08003cc
[ 57.858116] Call trace:
[ 57.860552] logic_inb+0xa0/0xe0
[ 57.863772] hsw_power_well_enable+0x198/0x288 [xe]
[ 57.868900] intel_power_well_enable+0x74/0x98 [xe]
[ 57.874019] intel_power_well_get+0x2c/0x40 [xe]
[ 57.878873] __intel_display_power_get_domain.part.0+0x7c/0xd0 [xe]
[ 57.885375] intel_display_power_get+0x5c/0x98 [xe]
[ 57.890487] intel_power_domains_init_hw+0x64/0x320 [xe]
[ 57.896031] intel_display_driver_probe_noirq+0xa0/0x1f8 [xe]
[ 57.902008] xe_display_init_noirq+0x58/0x90 [xe]
[ 57.906945] xe_device_probe+0x248/0x4e8 [xe]
[ 57.911538] xe_pci_probe+0x5d8/0x918 [xe]
[ 57.915866] local_pci_probe+0x48/0xb8
[ 57.919610] work_for_cpu_fn+0x24/0x40
[ 57.923349] process_one_work+0x18c/0x400
[ 57.927350] worker_thread+0x204/0x420
[ 57.931090] kthread+0xe8/0xf8
[ 57.934135] ret_from_fork+0x10/0x20
[ 57.937705] Code: d65f03c0 929fffe0 f2b81000 8b000020 (39400000)
[ 57.943787] ---[ end trace 0000000000000000 ]---
Note: module reuiqres xe.force_probe='56a1
option on cmdline or equivalent on modprobe.
Patch to fix that: linux-xe-aarch64-v0.patch · GitHub
After that module loads and I gnome running in software mode and outputing via Xe.
That makes modestetting - working.
Attempting to get 3D Acceleration to work:
- On debian, libdrm doesn’t build libdrm_intel on non-x86, that is simple to fix: libdrm-2.4.120-debian-intel-aarch.patch · GitHub
- For mesa, I took 24.1.0-rc3 as there was a lot of work around support of Xe kernel module, but few things in just a build system was required: mesa-24.1.0-rc3-allow-i915-to-compile-on-aarch64.patch
That compiles mesa just fine. Then the problem starts.
I’m getting initial image with a cursor, however gdm hangs immediately, consuming 100% CPU in a busy loop.
Kernel messages are:
[ 687.185731] xe 0004:04:00.0: [drm:drm_open_helper [drm]] comm="systemd-logind", pid=1479, minor=0
[ 687.185771] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="systemd-logind" pid=1479, dev=0xe200, auth=1, DRM_IOCTL_SET_MASTER
[ 687.186257] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_VERSION
<...>
[ 687.276617] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
<...>
[ 687.277202] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
<...>
[ 687.277219] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_CREATE
[ 687.278073] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.278096] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 262144
[ 687.278159] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.278177] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000000200000000, range=0x0000000000040000, bo_offset_or_userptr=0x0000000000000000
[ 687.278218] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000000200000000, range=0x0000000000040000
[ 687.278261] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [200000000...200040000) engine 00000000c49156d1.
[ 687.278719] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.278757] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 3 at (0 + 1) [0...8000000000) f:0
[ 687.278804] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.278846] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.278862] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 65536
[ 687.278908] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.278924] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffeffff0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.278962] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffeffff0000, range=0x0000000000010000
[ 687.279011] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffeffff0000...ffff00000000) engine 00000000c49156d1.
[ 687.279400] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.279436] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 3 at (511 + 1) [ff8000000000...1000000000000) f:0
[ 687.279653] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.279673] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 65536
[ 687.279720] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.279736] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefffe0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.279775] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefffe0000, range=0x0000000000010000
[ 687.279814] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefffe0000...fffeffff0000) engine 00000000c49156d1.
[ 687.279854] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.279890] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (480 + 16) [fffefffe0000...fffeffff0000) f:0
[ 687.279941] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.281486] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.281508] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 687.281524] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell", pid=2393, ret=-62
[ 687.281538] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.283500] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_GET_CAP
[ 687.287151] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.287180] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 2097152
[ 687.287236] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.287254] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x000000013f600000, range=0x0000000000200000, bo_offset_or_userptr=0x0000000000000000
[ 687.287293] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x000000013f600000, range=0x0000000000200000
[ 687.287335] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [13f600000...13f800000) engine 00000000c49156d1.
[ 687.287734] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.287772] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 2 at (4 + 1) [100000000...140000000) f:0
[ 687.287819] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.287854] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.287871] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 65536
[ 687.287916] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.287932] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x00000001ff7e0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.287970] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x00000001ff7e0000, range=0x0000000000010000
[ 687.288010] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [1ff7e0000...1ff7f0000) engine 00000000c49156d1.
[ 687.288288] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.288325] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 2 at (7 + 1) [1c0000000...200000000) f:0
[ 687.288379] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.288818] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.288838] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.288854] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.288868] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.288883] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_CREATE
[ 687.289028] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.289043] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.289057] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_CREATE
[ 687.289186] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.289201] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_DEVICE_QUERY
[ 687.289215] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_CREATE
[ 687.289341] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.289372] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.289389] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefffd0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.289428] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefffd0000, range=0x0000000000010000
[ 687.289469] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefffd0000...fffefffe0000) engine 00000000c49156d1.
[ 687.289510] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.289547] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (464 + 16) [fffefffd0000...fffefffe0000) f:0
[ 687.289599] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.289631] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.289653] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 131072
[ 687.289701] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.289716] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefffb0000, range=0x0000000000020000, bo_offset_or_userptr=0x0000000000000000
[ 687.289754] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefffb0000, range=0x0000000000020000
[ 687.289794] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefffb0000...fffefffd0000) engine 00000000c49156d1.
[ 687.289833] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.289870] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (432 + 32) [fffefffb0000...fffefffd0000) f:0
[ 687.289919] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.289945] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.289962] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.289987] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.290004] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefffa0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.290042] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefffa0000, range=0x0000000000010000
[ 687.290081] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefffa0000...fffefffb0000) engine 00000000c49156d1.
[ 687.290119] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.290156] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (416 + 16) [fffefffa0000...fffefffb0000) f:0
[ 687.290201] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.290223] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.290239] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 131072
[ 687.290282] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.290297] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefff80000, range=0x0000000000020000, bo_offset_or_userptr=0x0000000000000000
[ 687.290335] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefff80000, range=0x0000000000020000
[ 687.290374] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefff80000...fffefffa0000) engine 00000000c49156d1.
[ 687.290413] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.290450] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (384 + 32) [fffefff80000...fffefffa0000) f:0
[ 687.290499] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.290517] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.290533] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.290555] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.290570] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefff70000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.290608] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefff70000, range=0x0000000000010000
[ 687.290647] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefff70000...fffefff80000) engine 00000000c49156d1.
[ 687.290685] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.290722] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (368 + 16) [fffefff70000...fffefff80000) f:0
[ 687.290768] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.290789] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.290805] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 131072
[ 687.290848] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.290863] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefff50000, range=0x0000000000020000, bo_offset_or_userptr=0x0000000000000000
[ 687.290901] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefff50000, range=0x0000000000020000
[ 687.290939] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefff50000...fffefff70000) engine 00000000c49156d1.
[ 687.290978] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.291026] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (336 + 32) [fffefff50000...fffefff70000) f:0
[ 687.291075] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.291094] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.291148] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.291177] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 65536
[ 687.291221] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.291237] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x000000027fff0000, range=0x0000000000010000, bo_offset_or_userptr=0x0000000000000000
[ 687.291275] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x000000027fff0000, range=0x0000000000010000
[ 687.291314] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [27fff0000...280000000) engine 00000000c49156d1.
[ 687.291588] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.291625] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 2 at (9 + 1) [240000000...280000000) f:0
[ 687.291669] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.294883] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC
[ 687.294919] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
[ 687.294947] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 687.294964] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell", pid=2393, ret=-62
[ 687.294978] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 687.295003] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell", pid=2393, ret=-62
[ 687.295017] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_CREATE
[ 687.295037] xe 0004:04:00.0: [drm:xe_migrate_clear [xe]] Pass 0, size: 131072
[ 687.295087] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_VM_BIND
[ 687.295104] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] op=0, addr=0x0000fffefff30000, range=0x0000000000020000, bo_offset_or_userptr=0x0000000000000000
[ 687.295143] xe 0004:04:00.0: [drm:xe_vm_bind_ioctl [xe]] MAP: addr=0x0000fffefff30000, range=0x0000000000020000
[ 687.295185] xe 0004:04:00.0: [drm:__xe_pt_bind_vma [xe]] Preparing bind, with range [fffefff30000...fffefff50000) engine 00000000c49156d1.
[ 687.295227] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 1 entries to update
[ 687.295263] xe 0004:04:00.0: [drm:xe_vm_dbg_print_entries [xe]] 0: Update level 0 at (304 + 32) [fffefff30000...fffefff50000) f:0
[ 687.295313] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_GEM_MMAP_OFFSET
[ 687.295343] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.295360] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC
[ 687.295380] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
[ 687.295400] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 687.295416] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.295751] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295772] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.295787] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC
[ 687.295804] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295818] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_DESTROY
[ 687.295838] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295853] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.295867] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC
[ 687.295882] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295896] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_DESTROY
[ 687.295913] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295918] xe 0004:04:00.0: [drm] Timedout job: seqno=4294967169, guc_id=3, flags=0x0
[ 687.295928] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 687.295943] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC
[ 687.295957] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 687.295971] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, XE_EXEC_QUEUE_DESTROY
[ 687.296030] xe 0004:04:00.0: [drm] Xe device coredump has been created
[ 687.296035] xe 0004:04:00.0: [drm] Check your /sys/class/drm/card0/device/devcoredump/data
[ 687.296212] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SET_CLIENT_CAP
[ 687.296229] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_SET_CLIENT_CAP
[ 687.296250] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[ 687.296265] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_VERSION
[ 687.296305] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 687.296326] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES
[ 687.296342] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_GET_CAP
[ 687.296356] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_GET_CAP
[ 687.296369] xe 0004:04:00.0: [drm:drm_ioctl [drm]] comm="gnome-shell" pid=2393, dev=0xe200, auth=1, DRM_IOCTL_GET_CAP
[ 687.296338] xe 0004:04:00.0: [drm:guc_exec_queue_timedout_job [xe]] Timedout signaled job: seqno=4294967169, guc_id=3, flags=0x1
<...>
And after that it is basically stuck. I guess no surprise if something times out and then it suggested to get a coredump (though sysfs path is wrong).
And full log: gist:bee72c168ecc319b8eef89eb12b3db9e · GitHub
But that is on a kernel without PCIe patch, so maybe that is the reason why card is stuck. I’ll verify that.
UPD: And no signicant change if I re-apply the patch. I think I’ve managed to better isolate messages around the problem:
[ +0.000016] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 288 (4)
[ +0.000013] [drm:drm_mode_object_get [drm]] OBJ ID: 290 (2)
[ +0.000018] xe 0004:04:00.0: [drm:intel_plane_atomic_check_with_state [xe]] [CRTC:80:pipe A] with [PLANE:31:plane 1A] visible 1 -> 1, off 0, on 0, ms 0
[ +0.000042] [drm:drm_mode_object_get [drm]] OBJ ID: 292 (2)
[ +0.000014] xe 0004:04:00.0: [drm:intel_plane_atomic_check_with_state [xe]] [CRTC:80:pipe A] with [PLANE:76:cursor A] visible 0 -> 1, off 0, on 1, ms 0
[ +0.000047] xe 0004:04:00.0: [drm:intel_atomic_get_global_obj_state [xe]] Added new global object 000000000d80a9ae state 0000000040be01be to 00000000306efab0
[ +0.000044] xe 0004:04:00.0: [drm:intel_atomic_get_global_obj_state [xe]] Added new global object 0000000050377418 state 00000000e1717c20 to 00000000306efab0
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:31:plane 1A] level *wm0,*wm1,*wm2,*wm3,*wm4,*wm5,*wm6,*wm7,*twm, swm, stwm -> *wm0,*wm1,*wm2,*wm3,*wm4,*wm5,*wm6,*wm7,*twm, swm, stwm
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:31:plane 1A] lines 1, 4, 5, 6, 12, 14, 22, 33, 0, 0, 0 -> 4, 4, 5, 6, 12, 14, 22, 33, 0, 0, 0
[ +0.000041] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:31:plane 1A] blocks 21, 85, 106, 127, 253, 295, 463, 694, 35, 0, 0 -> 82, 82, 103, 123, 244, 285, 447, 670, 177, 0, 0
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:31:plane 1A] min_ddb 25, 95, 118, 141, 280, 326, 511, 765, 36, 0, 0 -> 163, 163, 244, 244, 325, 406, 568, 811, 178, 0, 0
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:76:cursor A] level wm0, wm1, wm2, wm3, wm4, wm5, wm6, wm7, twm, swm, stwm -> *wm0,*wm1,*wm2,*wm3,*wm4,*wm5,*wm6,*wm7,*twm, swm, stwm
[ +0.000039] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:76:cursor A] lines 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -> 3, 4, 5, 6, 12, 14, 22, 33, 0, 0, 0
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:76:cursor A] blocks 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -> 8, 13, 16, 19, 37, 43, 67, 100, 22, 0, 0
[ +0.000040] xe 0004:04:00.0: [drm:skl_compute_wm [xe]] [PLANE:76:cursor A] min_ddb 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -> 10, 16, 19, 22, 42, 49, 75, 111, 23, 0, 0
[ +0.000045] xe 0004:04:00.0: [drm:drm_atomic_commit [drm]] committing 00000000306efab0
[ +5.196998] xe 0004:04:00.0: [drm] Timedout job: seqno=4294967170, guc_id=5, flags=0x0
[ +0.000021] xe 0004:04:00.0: [drm:xe_devcoredump [xe]] Multiple hangs are occurring, but only the first snapshot was taken
[ +0.000492] xe 0004:04:00.0: [drm] Engine reset: guc_id=5
[ +0.000064] xe 0004:04:00.0: [drm:guc_exec_queue_timedout_job [xe]] Timedout signaled job: seqno=4294967171, guc_id=5, flags=0x1
[ +0.000094] xe 0004:04:00.0: [drm:guc_exec_queue_timedout_job [xe]] Timedout signaled job: seqno=4294967171, guc_id=5, flags=0x1
[ +0.000089] xe 0004:04:00.0: [drm:guc_exec_queue_timedout_job [xe]] Timedout signaled job: seqno=4294967171, guc_id=5, flags=0x1
Currently I’m stuck here as I don’t know the reason why the card hangs.