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