[PATCH 3/4] drm/amdgpu: id reset count only is updated when used end

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Could you elaborate the reason? bug fix, or sth else?

Jerry

On 05/10/2017 03:31 PM, Chunming Zhou wrote:
> before that, we have function to check if reset happens by using reset count.
>
> Change-Id: I2e941dd35295d4210d57a9593d39b5ee9021be9f
> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 58cde30..bbb3587 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -450,7 +450,6 @@ static int amdgpu_vm_grab_reserved_vmid_locked(struct amdgpu_vm *vm,
>   		id->flushed_updates = fence_get(updates);
>   	}
>   	id->pd_gpu_addr = job->vm_pd_addr;
> -	id->current_gpu_reset_count = atomic_read(&adev->gpu_reset_counter);
>   	atomic64_set(&id->owner, vm->client_id);
>   	job->vm_needs_flush = needs_flush;
>   	if (needs_flush) {
> @@ -598,7 +597,6 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
>   	id->pd_gpu_addr = job->vm_pd_addr;
>   	fence_put(id->flushed_updates);
>   	id->flushed_updates = fence_get(updates);
> -	id->current_gpu_reset_count = atomic_read(&adev->gpu_reset_counter);
>   	atomic64_set(&id->owner, vm->client_id);
>
>   needs_flush:
> @@ -783,6 +781,8 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job)
>   		mutex_lock(&id_mgr->lock);
>   		fence_put(id->last_flush);
>   		id->last_flush = fence;
> +		if (amdgpu_vm_had_gpu_reset(adev, id))
> +			id->current_gpu_reset_count = atomic_read(&adev->gpu_reset_counter);
>   		mutex_unlock(&id_mgr->lock);
>   	}
>
>


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux