xe_device_td_flush(9)
π xe_device_td_flush(9) β a Kernel API Manual moment
okay so this is xe_device_td_flush, bestie, and it's living in the kernel API manual. sit down, we're learning about cache flushing π«Ά
β¨ NAME β¨
xe_device_td_flush β flushes out those transient L3 cache entries, no cap π
πΈ SYNOPSIS πΈ
void xe_device_td_flush (struct xe_device *xe );
π ARGUMENTS π
xeβ the device. that's it, that's the argument, she's a simple queen π
π¦ DESCRIPTION π¦
okay so picture this: the display engine has direct access to memory, right? and it is never coherent with the L3/L4 caches (or the CPU caches either, ngl they're not on speaking terms π). but here's the thing β KMD</> is the one responsible for specifically flushing those transient L3 GPU cache entries before the flip sequence happens, so that scanout can actually happen from a surface like that without seeing corruption. like, the whole point is no corruption. periodt. π₯
and how do surfaces get tagged as transient in the first place? you map them using one of the various L3:XD PAT index modes on Xe2. that's the vibe check β
π NOTE π
listen, on non-discrete xe2 platforms β like LNL, for example β the entire L3 cache gets flushed at the end of every single submission via PIPE_CONTROL for compute/render. why? because SA Media is not coherent with L3 and we want to support render-vs-media use cases, obviously π§
and for the other engines, like copy/blt? the HW internally forces uncached behaviour. that's literally why we can skip the TDF on those platforms. iykyk π
β SEE ALSO β
kernel file ./drivers/gpu/drm/xe/xe_device.c, plus the whole friend group:
xe_file_get(9)xe_file_put(9)xe_is_xe_file(9)xe_device_is_admin_only(9)xe_device_create(9)xe_device_init_early(9)xe_device_probe_early(9)xe_device_wmb(9)xe_device_is_l2_flush_optimized(9)xe_device_assert_mem_access(9)Xe Device Wedging(9)xe_device_set_wedged_method(9)xe_device_declare_wedged(9)xe_device_validate_wedged_mode(9)xe_wedged_mode_to_string(9)xe_device_asid_to_vm(9)
and that's the page, bestie πβ¨ this icon of a manpage lives in ./drivers/gpu/drm/xe, dated October 2026, and it's still xe_device_td_flush(9) at the end of the day. slay ππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms