XE tests on Tiger Lake
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Wed May 22 14:18:22 UTC 2024
Hi,
I've been testing v6.9 with the XE driver on a
| 00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01)
(8086:9a49) 11th Gen Intel(R) Core(TM) i7-1165G7 platform.
During boot up a few timeouts and errors showed up:
| xe 0000:00:02.0: enabling device (0006 -> 0007)
| xe 0000:00:02.0: vgaarb: deactivate vga console
| xe 0000:00:02.0: [drm] Using GuC firmware from i915/tgl_guc_70.bin version 70.5.1
| xe 0000:00:02.0: [drm] GuC firmware (70.19.2) is recommended, but only (70.5.1) was found in i915/tgl_guc_70.bin
| xe 0000:00:02.0: [drm] Consider updating your linux-firmware pkg or downloading from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
| xe 0000:00:02.0: [drm] Using HuC firmware from i915/tgl_huc.bin version 7.9.3
| xe 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=mem
| xe 0000:00:02.0: [drm] Finished loading DMC firmware i915/tgl_dmc_ver2_12.bin (v2.12)
| xe 0000:00:02.0: [drm] HDCP support not yet implemented
| xe 0000:00:02.0: [drm] fb0: xedrmfb frame buffer device
| xe 0000:00:02.0: [drm] Timedout job: seqno=4294967169, guc_id=2, flags=0x0
| xe 0000:00:02.0: [drm] *ERROR* H2G CTB (all sizes in DW):
| xe 0000:00:02.0: [drm] *ERROR* size: 1024
| xe 0000:00:02.0: [drm] *ERROR* resv_space: 0
| xe 0000:00:02.0: [drm] *ERROR* head: 0
| xe 0000:00:02.0: [drm] *ERROR* tail: 469
| xe 0000:00:02.0: [drm] *ERROR* space: 554
| xe 0000:00:02.0: [drm] *ERROR* broken: 0
| xe 0000:00:02.0: [drm] *ERROR* head (memory): 465
| xe 0000:00:02.0: [drm] *ERROR* tail (memory): 469
| xe 0000:00:02.0: [drm] *ERROR* status (memory): 0x0
| xe 0000:00:02.0: [drm] *ERROR* cmd[465]: 0x80520003
| xe 0000:00:02.0: [drm] *ERROR* cmd[466]: 0x20001001
| xe 0000:00:02.0: [drm] *ERROR* cmd[467]: 0x00000003
| xe 0000:00:02.0: [drm] *ERROR* cmd[468]: 0x00000001
| xe 0000:00:02.0: [drm] *ERROR*
| G2H CTB (all sizes in DW):
| xe 0000:00:02.0: [drm] *ERROR* size: 4096
| xe 0000:00:02.0: [drm] *ERROR* resv_space: 1024
| xe 0000:00:02.0: [drm] *ERROR* head: 156
| xe 0000:00:02.0: [drm] *ERROR* tail: 0
| xe 0000:00:02.0: [drm] *ERROR* space: 3067
| xe 0000:00:02.0: [drm] *ERROR* broken: 0
| xe 0000:00:02.0: [drm] *ERROR* head (memory): 156
| xe 0000:00:02.0: [drm] *ERROR* tail (memory): 156
| xe 0000:00:02.0: [drm] *ERROR* status (memory): 0x0
| xe 0000:00:02.0: [drm] *ERROR* g2h outstanding: 1
| xe 0000:00:02.0: [drm] *ERROR* rcs0 (physical), logical instance=0
| xe 0000:00:02.0: [drm] *ERROR* Forcewake: domain 0x2, ref 1
| xe 0000:00:02.0: [drm] *ERROR* HWSTAM: 0xffffffff
| xe 0000:00:02.0: [drm] *ERROR* RING_HWS_PGA: 0x01f10000
| xe 0000:00:02.0: [drm] *ERROR* RING_EXECLIST_STATUS: 0x0000004000018001
| xe 0000:00:02.0: [drm] *ERROR* RING_EXECLIST_SQ_CONTENTS: 0x0000004001f51119
| xe 0000:00:02.0: [drm] *ERROR* RING_START: 0x01f4d000
| xe 0000:00:02.0: [drm] *ERROR* RING_HEAD: 0x00000090
| xe 0000:00:02.0: [drm] *ERROR* RING_TAIL: 0x00000090
| xe 0000:00:02.0: [drm] *ERROR* RING_CTL: 0x00003000
| xe 0000:00:02.0: [drm] *ERROR* RING_MI_MODE: 0x00000200
| xe 0000:00:02.0: [drm] *ERROR* RING_MODE: 0x00000008
| xe 0000:00:02.0: [drm] *ERROR* RING_IMR: 0x00000000
| xe 0000:00:02.0: [drm] *ERROR* RING_ESR: 0x00000000
| xe 0000:00:02.0: [drm] *ERROR* RING_EMR: 0xffffffff
| xe 0000:00:02.0: [drm] *ERROR* RING_EIR: 0x00000000
| xe 0000:00:02.0: [drm] *ERROR* ACTHD: 0x0000000000000000
| xe 0000:00:02.0: [drm] *ERROR* BBADDR: 0x0000fffeffdee1c0
| xe 0000:00:02.0: [drm] *ERROR* DMA_FADDR: 0x0000000001f4d090
| xe 0000:00:02.0: [drm] *ERROR* IPEHR: 0x02800000
| xe 0000:00:02.0: [drm] *ERROR* VM root: A:0x1083f7000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [000000013f780000-000000013f7fffff] S:0x0000000000080000 A:0000000137c80000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [00000001ff7ef000-00000001ff7fefff] S:0x0000000000010000 A:0000000137c40000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000000200000000-000000020003ffff] S:0x0000000000040000 A:0000000142fc0000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffa00000-0000fffeffbfffff] S:0x0000000000200000 A:000000013a200000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdac000-0000fffeffdbbfff] S:0x0000000000010000 A:0000000137d30000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdbc000-0000fffeffdcbfff] S:0x0000000000010000 A:0000000137d20000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdcc000-0000fffeffddbfff] S:0x0000000000010000 A:0000000137d10000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffddc000-0000fffeffddcfff] S:0x0000000000001000 A:000000013d021000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffddd000-0000fffeffdecfff] S:0x0000000000010000 A:0000000137d00000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffded000-0000fffeffdedfff] S:0x0000000000001000 A:000000013d020000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdee000-0000fffeffdfdfff] S:0x0000000000010000 A:0000000137c70000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdfe000-0000fffeffdfefff] S:0x0000000000001000 A:000000013d01f000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffdff000-0000fffeffdfffff] S:0x0000000000001000 A:000000013d000000 SYS
| xe 0000:00:02.0: [drm] *ERROR* [0000fffeffe00000-0000fffeffffffff] S:0x0000000000200000 A:000000013a000000 SYS
| xe 0000:00:02.0: [drm] Xe device coredump has been created
| xe 0000:00:02.0: [drm] Check your /sys/class/drm/card0/device/devcoredump/data
| xe 0000:00:02.0: [drm] Timedout job: seqno=4294967169, guc_id=5, flags=0x0
| xe 0000:00:02.0: [drm] Timedout job: seqno=4294967169, guc_id=6, flags=0x0
Despite several "Timedout" and "ERROR" messages in the kernel log the
usage seems smooth without any (obvious) errors. Is this to be expected?
Running PREEMPT_RT requires at least "drm/i915: Don't disable interrupts
on PREEMPT_RT during atomic updates" from the PREEMPT_RT-queue otherwise
the following splats are seen:
| BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
| in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 277, name: (udev-worker)
| preempt_count: 0, expected: 0
| RCU nest depth: 0, expected: 0
| CPU: 0 PID: 277 Comm: (udev-worker) Tainted: G U 6.9.0-rt5+ #14
| Hardware name: LENOVO 20TD00GLGE/20TD00GLGE, BIOS R1EET60W(1.60 ) 04/15/2024
| Call Trace:
| <TASK>
| dump_stack_lvl+0x64/0x80
| __might_resched+0x179/0x1d0
| rt_spin_lock+0x2b/0x70
| prepare_to_wait+0x22/0xd0
| intel_vblank_evade+0xb6/0x150 [xe]
| intel_pipe_update_start+0xcb/0x260 [xe]
| intel_update_crtc+0x3a/0x470 [xe]
| skl_commit_modeset_enables+0x1a4/0x520 [xe]
| intel_atomic_commit_tail+0x7b7/0x10f0 [xe]
| intel_atomic_commit+0x2f5/0x340 [xe]
| drm_atomic_commit+0x9a/0xd0
I didn't observe other warnings even with tracing enabled (unlike on the
i915).
That one i915 patch seems to be enough on this platform with my testing
for PREEMPT_RT.
Sebastian
More information about the Intel-gfx
mailing list