CachyOS / CachyOS/linux-cachyos
[Patch Request] drm/xe: Implement Wa_22016122933 to fix GuC TLB invalidation ack stalls on Arrow Lake
- Dominant language
- Shell
- Stars
- 4.5k
- Forks
- 160
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 1
Description
### Pre-flight checklist
- [x] I have searched existing issues/PRs and this has not been requested before.
- [x] I have read the [Contributing Guidelines](https://github.com/CachyOS/linux-cachyos/blob/master/CONTRIBUTING.md).
### Request type
- [x] New patch / patchset inclusion
- [ ] Kernel config change (enable/disable option)
- [ ] New kernel variant
- [ ] Scheduler tuning / addition
- [ ] Compiler / LTO / PGO optimization
- [ ] Security hardening
- [x] Driver or hardware enablement
- [x] #1039
### Summary
Requesting the inclusion of the v3 patch series for `drm/xe` implementing `Wa_22016122933`.
On Arrow Lake-S (ARL) systems using the `xe` driver, media workloads and video acceleration trigger frequent GuC TLB invalidation ack stall timeouts and platform freezes (`*ERROR* TLB invalidation fence timeout`). This occurs because the CPU reads stale cache lines from the G2H CTB on the standalone media GT.
### Hardware Details
- **System:** Lenovo ThinkCentre M70t Gen 6 (Mobo: 3376)
- **CPU:** Intel Core Ultra 5 235 (Arrow Lake-S, 14 cores)
- **GPU:** Intel Arrow Lake-S [Intel Graphics] (PCI ID: `00:02.0`, Device ID: `7d67`, rev 06)
- **Driver:** `xe` (boot parameter: `i915.force_probe=!7d67 xe.force_probe=7d67`)
- **Desktop Environment:** KDE Plasma 6.7.5 (Wayland), Mesa 26.2.2-arch3.2
### Patch References
- **Mailing list thread:** https://mid.mail-archive.com/dri-devel%40lists.freedesktop.org/msg630443.html
- **Message-ID:** `20260824140748.54974-1-talesam@gmail.com`
- **GitLab tracking issue:** https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678
### Testing & Verification
Tested against `linux-cachyos` (7.2.4):
- All 3 patches in the v3 series applied cleanly to the CachyOS kernel tree without merge conflicts.
- Completely resolves the GuC TLB invalidation timeouts and desktop/media freezes.
### dmesg Comparison (Before vs After)
```text
--- BEFORE PATCH (Kernel 7.2.4-3) ---
[ 22.325724] xe 0000:00:02.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=3517 recv=3516
[ 64.175200] evm: overlay not supported
[ 143.348035] xe 0000:00:02.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=13094 recv=13093
--- AFTER PATCH (Kernel 7.2.4-1 + Wa_22016122933) ---
[ 0.000000] Command line: quiet nowatchdog splash rw rootflags=subvol=/@ root=UUID=9db6a305-38e5-44a9-b9bf-221aef6389cb i915.force_probe=!7d67 xe.force_probe=7d67
[ 1.713912] xe 0000:00:02.0: vgaarb: deactivate vga console
[ 1.714077] xe 0000:00:02.0: [drm] Support for SR-IOV is not available
[ 1.714150] xe 0000:00:02.0: [drm] Initialized xe for 0000:00:02.0 on minor 0
### Motivation / use case
Prevents platform freezes and GPU driver crashes on Arrow Lake (ARL) systems using the `xe` driver.
Currently, media workloads and hardware video acceleration trigger frequent GuC TLB invalidation ack stall timeouts (`*ERROR* TLB invalidation fence timeout`). This happens because the CPU reads stale cache lines from the G2H CTB on the standalone media GT.
Implementing `Wa_22016122933` resolves the caching erratum, completely eliminating the timeouts and restoring stability under Wayland and media workloads.
### Patch / upstream reference (if available)
https://lore.kernel.org/all/20260824140748.54974-1-talesam@gmail.com/
https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678
### Testing / benchmarks
Tested on `linux-cachyos` (7.2.4-1):
- All 3 patches in the v3 series applied cleanly to the CachyOS kernel tree without merge conflicts.
- Hardware: Intel Core Ultra 5 235 (Arrow Lake-S) on Lenovo ThinkCentre M70t Gen 6 (Device ID `7d67`).
- Desktop: KDE Plasma 6.7.5 (Wayland), Mesa 26.2.2.
```text
--- BEFORE PATCH (Kernel 7.2.4-3) ---
[ 22.325724] xe 0000:00:02.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=3517 recv=3516
[ 64.175200] evm: overlay not supported
[ 143.348035] xe 0000:00:02.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=13094 recv=13093
--- AFTER PATCH (Kernel 7.2.4-1 + Wa_22016122933) ---
[ 0.000000] Command line: quiet nowatchdog splash rw rootflags=subvol=/@ root=UUID=9db6a305-38e5-44a9-b9bf-221aef6389cb i915.force_probe=!7d67 xe.force_probe=7d67
[ 1.713912] xe 0000:00:02.0: vgaarb: deactivate vga console
[ 1.714077] xe 0000:00:02.0: [drm] Support for SR-IOV is not available
[ 1.714150] xe 0000:00:02.0: [drm] Initialized xe for 0000:00:02.0 on minor 0
Result: Zero TLB invalidation timeouts and zero media freezes after applying the patch.
### Additional context
The series consists of 3 patches:
1. `drm/xe: Capture devcoredump on TLB invalidation timeout`
2. `drm/xe: Log when a timed out TLB invalidation ack finally arrives`
3. `drm/xe: Implement Wa_22016122933`
It carries no extra external dependencies and builds cleanly with default CachyOS flags.
Contributor guide
Assessment
This issue has not been assessed yet.