Skip to content

Evict PoC based on dma-resv

Matthew Brost requested to merge (removed):xe into xe

Hack job, not broken into multiple patches, all based on dma-resv.

  • Basic idea is jobs / preempt fences are in the shared slots of the VM.
  • Jobs wait on excl slot (non-compute mode).
  • Moves wait on all slots (either mode).
  • The rebind(s) are installed on shared slots (compute mode) or excl slot (non-compute mode)
  • Preempt op are installed on moves (NIY) + rebind(s) (compute mode only).
  • When all preempt ops complete, a new preempt fence is installed (compute mode).

So in non-compute basicly a move waits on all outstanding jobs for the VM to complete, queues up the move + rebind(s) under lock, and all future jobs wait for the move + rebind(s) to complete.

In compute mode, the initial move triggers all the preempt fences (suspends all xe_engines on VM), and once the move + rebind(s) complete, new preempt fences are installed (resumes all xe_engines on VM).

Basic testing done below MR and seems to be working. 80 moves + rebinds on DG1 with the test passing. https://gitlab.freedesktop.org/drm/xe/igt-gpu-tools/-/merge_requests/6

Out until 5/6, when I get back I'll pick this back up or someone feel free to run with this while I'm out.

Merge request reports