[PATCH 06/23] drm/nouveau: stop using dma_resv_excl_fence

Christian König ckoenig.leichtzumerken at gmail.com
Tue Apr 5 07:25:50 UTC 2022


Am 04.04.22 um 13:47 schrieb Karol Herbst:
> On Sun, Apr 3, 2022 at 5:59 PM Christian König <christian.koenig at amd.com> wrote:
>> Just a gentle ping to the nouveau guys.
>>
>> Any more comments on this? Otherwise I'm pushing that with Daniels rb.
>>
> It looks fine, but given that this area broke in the past I will try
> to do some testing either before or after you push it. As long as we
> do so before 5.19 it should be okay I think.

Ok that's sounds good enough to me. Going to push it to drm-misc-next now.

Thanks,
Christian.

>
> Unless somebody knowing more about this code has anything else to say.
>
>> Thanks,
>> Christian.
>>
>> Am 21.03.22 um 14:58 schrieb Christian König:
>>> Instead use the new dma_resv_get_singleton function.
>>>
>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>>> Cc: Ben Skeggs <bskeggs at redhat.com>
>>> Cc: Karol Herbst <kherbst at redhat.com>
>>> Cc: Lyude Paul <lyude at redhat.com>
>>> Cc: nouveau at lists.freedesktop.org
>>> ---
>>>    drivers/gpu/drm/nouveau/nouveau_bo.c | 9 ++++++++-
>>>    1 file changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
>>> index fa73fe57f97b..74f8652d2bd3 100644
>>> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
>>> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
>>> @@ -959,7 +959,14 @@ nouveau_bo_vm_cleanup(struct ttm_buffer_object *bo,
>>>    {
>>>        struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
>>>        struct drm_device *dev = drm->dev;
>>> -     struct dma_fence *fence = dma_resv_excl_fence(bo->base.resv);
>>> +     struct dma_fence *fence;
>>> +     int ret;
>>> +
>>> +     /* TODO: This is actually a memory management dependency */
>>> +     ret = dma_resv_get_singleton(bo->base.resv, false, &fence);
>>> +     if (ret)
>>> +             dma_resv_wait_timeout(bo->base.resv, false, false,
>>> +                                   MAX_SCHEDULE_TIMEOUT);
>>>
>>>        nv10_bo_put_tile_region(dev, *old_tile, fence);
>>>        *old_tile = new_tile;



More information about the dri-devel mailing list