[Intel-xe] [PATCH v10 7/9] drm/xe/vm: tidy up xe_runtime_pm usage

Rodrigo Vivi rodrigo.vivi at kernel.org
Wed May 24 19:30:44 UTC 2023


On Wed, May 24, 2023 at 06:56:59PM +0100, Matthew Auld wrote:
> The xe_device_mem_access_get() should be all that's needed here and
> should now work as expected, without any strange races. In theory should
> be no functional changes here.
> 
> Reported-by: Oded Gabbay <ogabbay at kernel.org>
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_vm.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index a0306526b269..8d14ee7bf70f 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -1145,11 +1145,8 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
>  
>  	INIT_LIST_HEAD(&vm->extobj.list);
>  
> -	if (!(flags & XE_VM_FLAG_MIGRATION)) {
> -		/* We need to immeditatelly exit from any D3 state */
> -		xe_pm_runtime_get(xe);
> +	if (!(flags & XE_VM_FLAG_MIGRATION))
>  		xe_device_mem_access_get(xe);
> -	}
>  
>  	err = dma_resv_lock_interruptible(&vm->resv, NULL);
>  	if (err)
> @@ -1263,10 +1260,8 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
>  err_put:
>  	dma_resv_fini(&vm->resv);
>  	kfree(vm);
> -	if (!(flags & XE_VM_FLAG_MIGRATION)) {
> +	if (!(flags & XE_VM_FLAG_MIGRATION))
>  		xe_device_mem_access_put(xe);
> -		xe_pm_runtime_put(xe);
> -	}
>  	return ERR_PTR(err);
>  }
>  
> @@ -1419,7 +1414,6 @@ static void vm_destroy_work_func(struct work_struct *w)
>  
>  	if (!(vm->flags & XE_VM_FLAG_MIGRATION)) {
>  		xe_device_mem_access_put(xe);
> -		xe_pm_runtime_put(xe);
>  
>  		if (xe->info.has_asid) {
>  			mutex_lock(&xe->usm.lock);
> -- 
> 2.40.1
> 


More information about the Intel-xe mailing list