[PATCH v3 0/3] drm/vc4: Clean-up BO seqnos

Maíra Canal mcanal at igalia.com
Sun Jan 19 22:15:48 UTC 2025


Hi Melissa,

On 07/01/25 11:10, Melissa Wen wrote:
> 
> 
> 
> On 20/12/2024 10:37, Maíra Canal wrote:
>> This series introduces a series of clean-ups for BO reservations in
>> the VC4 driver. Currently, VC4 uses shared fences to track BO
>> reservations, similar to many other DRM devices. However, in addition
>> to DMA reservation objects, VC4 has been maintaining a separate seqno
>> tracking system for BOs to track job completion.
>>
>> The seqno tracking system was implemented before DMA reservation
>> objects and was left in the code after DMA reservation's introduction.
>> This approach is now redundant, as job completion can be effectively
>> tracked using fences. Consequently, this series focuses on eliminating
>> seqnos from the BO implementation.
>>
>> Patch Breakdown
>> ===============
>>
>> * Patch #1: Uses the DRM Exec to replace the open-coded implementation
>> of the functions `drm_gem_lock_reservations()` and
>> `drm_gem_unlock_reservations()` in the VC4 driver code. A straightforward
>> change with no functional changes.
>>
>> * Patch #2: Implements the VC4 wait BO IOCTL using DMA Resv Objects.
>> The new implementation closely mirrors the V3D approach and removes
>> the IOCTL's dependency on BO sequence numbers.
>>
>> * Patch #3: The central piece of this patchset. It removes `bo->seqno`,
>> `bo->write_seqno`, and `exec->bin_dep_seqno` from the driver. As the
>> seqno tracking system is redundant, its deletion is relatively
>> straightforward. The only notable change is `vc4_async_set_fence_cb()`,
>> which now uses `dma_fence_add_callback()` to add the VC4 callback.
> This series is:
> 
> Reviewed-by: Melissa Wen <mwen at igalia.com>

Thanks for your review! The series was applied to misc/kernel.git (drm-
misc-next).

Best Regards,
- Maíra

> 
> Thanks!
>>
>> Changes
>> =======
>>
>> v1 -> v2: https://lore.kernel.org/dri-devel/20241206131706.203324-1- 
>> mcanal at igalia.com/T/
>>
>> * [1/4] Use DRM Exec to replace the (un)lock reservation functions
>>          (Christian König)
>>
>> v2 -> v3: https://lore.kernel.org/dri-devel/20241212202337.381614-1- 
>> mcanal at igalia.com/T/
>>
>> * [1/4] König's A-b (Christian König)
>> * [2/4] s/dma_gem_dma_resv_wait/drm_gem_dma_resv_wait (Melissa Wen)
>> * [2/4] Use `usecs_to_jiffies()` to calculate the timeout in jiffies
>>          (Tvrtko Ursulin)
>> * [2/4] Remove -EAGAIN errno from the IOCTL (Tvrtko Ursulin)
>> * [3/4] s/vc4_async_page_flip_seqno_complete/ 
>> vc4_async_page_flip_complete_with_cleanup
>>          (Melissa Wen)
>> * [3/4] Add `dma_fence_put()` in 
>> `vc4_async_page_flip_complete_with_cleanup()`
>> * [3/4] Maxime's R-b (Maxime Ripard)
>> * [4/4] Squashed to PATCH 3/4 (Melissa Wen)
>> * [4/4] Remove `vc4->seqno_cb_list` and `struct vc4_seqno_cb` (Tvrtko 
>> Ursulin)
>>
>> Best Regards,
>> - Maíra
>>
>> ---
>>
>> Maíra Canal (3):
>>    drm/vc4: Use DRM Execution Contexts
>>    drm/vc4: Use DMA Resv to implement VC4 wait BO IOCTL
>>    drm/vc4: Remove BOs seqnos
>>
>>   drivers/gpu/drm/vc4/Kconfig        |   1 +
>>   drivers/gpu/drm/vc4/vc4_crtc.c     |  33 +++---
>>   drivers/gpu/drm/vc4/vc4_drv.h      |  27 -----
>>   drivers/gpu/drm/vc4/vc4_gem.c      | 183 ++++++-----------------------
>>   drivers/gpu/drm/vc4/vc4_validate.c |  11 --
>>   5 files changed, 53 insertions(+), 202 deletions(-)
>>
> 



More information about the dri-devel mailing list