Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1415459
| From | Alex Deucher <alexdeucher@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 11/11] drm/amdgpu: remove now unnecessary checks |
| Date | 2016-06-06 23:20 +0200 |
| Message-ID | <rHa6d-1IG-11@gated-at.bofh.it> (permalink) |
| References | <rFedX-qG-9@gated-at.bofh.it> <rFedY-qG-57@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, Jun 1, 2016 at 9:10 AM, Christian König <deathsimple@vodafone.de> wrote:
> From: Christian König <christian.koenig@amd.com>
>
> vm_flush() now comes directly after vm_grab_id().
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
For the series:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 -
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 31 +++++++++++--------------------
> 2 files changed, 11 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 52326d3..e054542 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -886,7 +886,6 @@ struct amdgpu_vm_id {
> struct fence *first;
> struct amdgpu_sync active;
> struct fence *last_flush;
> - struct amdgpu_ring *last_user;
> atomic64_t owner;
>
> uint64_t pd_gpu_addr;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 8ea1c73..48d5ad18 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -237,6 +237,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
> i = ring->idx;
> do {
> struct fence *flushed;
> + bool same_ring = ring->idx == i;
>
> id = vm->ids[i++];
> if (i == AMDGPU_MAX_RINGS)
> @@ -252,7 +253,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
> if (pd_addr != id->pd_gpu_addr)
> continue;
>
> - if (id->last_user != ring &&
> + if (!same_ring &&
> (!id->last_flush || !fence_is_signaled(id->last_flush)))
> continue;
>
> @@ -261,15 +262,9 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
> (!flushed || fence_is_later(updates, flushed)))
> continue;
>
> - /* Good we can use this VMID */
> - if (id->last_user == ring) {
> - r = amdgpu_sync_fence(ring->adev, sync,
> - id->first);
> - if (r)
> - goto error;
> - }
> -
> - /* And remember this submission as user of the VMID */
> + /* Good we can use this VMID. Remember this submission as
> + * user of the VMID.
> + */
> r = amdgpu_sync_fence(ring->adev, &id->active, fence);
> if (r)
> goto error;
> @@ -306,7 +301,6 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
> id->pd_gpu_addr = pd_addr;
>
> list_move_tail(&id->list, &adev->vm_manager.ids_lru);
> - id->last_user = ring;
> atomic64_set(&id->owner, vm->client_id);
> vm->ids[ring->idx] = id;
>
> @@ -357,16 +351,13 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring,
> trace_amdgpu_vm_flush(pd_addr, ring->idx, vm_id);
> amdgpu_ring_emit_vm_flush(ring, vm_id, pd_addr);
>
> + r = amdgpu_fence_emit(ring, &fence);
> + if (r)
> + return r;
> +
> mutex_lock(&adev->vm_manager.lock);
> - if ((id->pd_gpu_addr == pd_addr) && (id->last_user == ring)) {
> - r = amdgpu_fence_emit(ring, &fence);
> - if (r) {
> - mutex_unlock(&adev->vm_manager.lock);
> - return r;
> - }
> - fence_put(id->last_flush);
> - id->last_flush = fence;
> - }
> + fence_put(id->last_flush);
> + id->last_flush = fence;
> mutex_unlock(&adev->vm_manager.lock);
> }
>
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Fence array patchset Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 02/11] dma-buf/fence: add fence_array fences v6 Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6 Gustavo Padovan <gustavo@padovan.org> - 2016-06-01 16:10 +0200
Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6 Gustavo Padovan <gustavo@padovan.org> - 2016-06-01 17:30 +0200
Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6 Sumit Semwal <sumit.semwal@linaro.org> - 2016-06-01 18:30 +0200
Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6 Daniel Vetter <daniel@ffwll.ch> - 2016-06-02 00:50 +0200
Re: [PATCH 02/11] dma-buf/fence: add fence_array fences v6 Christian König <deathsimple@vodafone.de> - 2016-06-02 09:30 +0200
[PATCH 07/11] drm/amdgpu: add optional ring to amdgpu_sync_is_idle Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 04/11] drm/amdgpu: document amdgpu_sync_get_fence Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 10/11] drm/amdgpu: use a fence array for VMID management Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 06/11] drm/amdgpu: remove amdgpu_sync_wait Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 05/11] drm/amdgpu: generalize the scheduler fence Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 08/11] drm/amdgpu: prefer VMIDs idle on the current ring Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
[PATCH 11/11] drm/amdgpu: remove now unnecessary checks Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
Re: [PATCH 11/11] drm/amdgpu: remove now unnecessary checks Alex Deucher <alexdeucher@gmail.com> - 2016-06-06 23:20 +0200
[PATCH 01/11] dma-buf/fence: make fence context 64 bit v2 Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
Re: [PATCH 01/11] dma-buf/fence: make fence context 64 bit v2 Gustavo Padovan <gustavo@padovan.org> - 2016-06-01 17:30 +0200
[PATCH 09/11] drm/amdgpu: reuse VMIDs assigned to a VM only if there is also a free one Christian König <deathsimple@vodafone.de> - 2016-06-01 15:20 +0200
Re: Fence array patchset Alex Deucher <alexdeucher@gmail.com> - 2016-06-01 15:50 +0200
csiph-web