]> www.infradead.org Git - linux.git/commit
drm/xe/oa: Signal output fences
authorAshutosh Dixit <ashutosh.dixit@intel.com>
Tue, 22 Oct 2024 20:03:49 +0000 (13:03 -0700)
committerAshutosh Dixit <ashutosh.dixit@intel.com>
Wed, 23 Oct 2024 19:42:17 +0000 (12:42 -0700)
commit343dd246fd9b58e67b395153e8e7298bd250f943
tree6b429e7f9fd61354744b918259a03059ecebebea
parent2fb4350a283af03a5ee34ba765783a941f942b82
drm/xe/oa: Signal output fences

Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.

v2: Don't wait in the work, use callback + delayed work (Matt B)
    Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
    Assert, don't fail, from dma_fence_add_callback (Matt)
    Additional dma_fence_get for dma_fence_wait (Matt)
    Change dma_fence_wait to non-interruptible (Matt)
v4: Introduce last_fence to prevent uaf if stream is closed with
    pending OA config jobs
v5: Remove oa_fence_lock, move spinlock back into xe_oa_fence to
    prevent uaf

Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241022200352.1192560-5-ashutosh.dixit@intel.com
drivers/gpu/drm/xe/xe_oa.c
drivers/gpu/drm/xe/xe_oa_types.h