All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
@ 2017-02-09 22:28 Samuel Pitoiset
       [not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-09 22:28 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Samuel Pitoiset

Move amdgpu_bo_unreserve() outside of the switch. While we are
at it, add a missing break in the default case.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 1dc59aafec71..ae4658a10e2c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
 		info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
 		info.domains = robj->prefered_domains;
 		info.domain_flags = robj->flags;
-		amdgpu_bo_unreserve(robj);
 		if (copy_to_user(out, &info, sizeof(info)))
 			r = -EFAULT;
 		break;
@@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
 	case AMDGPU_GEM_OP_SET_PLACEMENT:
 		if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
 			r = -EPERM;
-			amdgpu_bo_unreserve(robj);
 			break;
 		}
 		robj->prefered_domains = args->value & (AMDGPU_GEM_DOMAIN_VRAM |
@@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
 		robj->allowed_domains = robj->prefered_domains;
 		if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
 			robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
-
-		amdgpu_bo_unreserve(robj);
 		break;
 	default:
-		amdgpu_bo_unreserve(robj);
 		r = -EINVAL;
+		break;
 	}
 
+	amdgpu_bo_unreserve(robj);
 out:
 	drm_gem_object_unreference_unlocked(gobj);
 	return r;
-- 
2.11.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm()
       [not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-02-09 22:28   ` Samuel Pitoiset
       [not found]     ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-02-10  2:55   ` [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() zhoucm1
  2017-02-10 10:02   ` Christian König
  2 siblings, 1 reply; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-09 22:28 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Samuel Pitoiset

This removes code duplication.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index ae4658a10e2c..76569e31bfd8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -506,13 +506,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
 	list_for_each_entry(entry, list, head) {
 		struct amdgpu_bo *bo =
 			container_of(entry->bo, struct amdgpu_bo, tbo);
-
-		/* if anything is swapped out don't swap it in here,
-		   just abort and wait for the next CS */
-		if (!amdgpu_bo_gpu_accessible(bo))
-			goto error;
-
-		if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
+		if (amdgpu_gem_va_check(NULL, bo))
 			goto error;
 	}
 
-- 
2.11.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-02-09 22:28   ` [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm() Samuel Pitoiset
@ 2017-02-10  2:55   ` zhoucm1
       [not found]     ` <589D2B9C.309-5C7GfCeVMHo@public.gmane.org>
  2017-02-10 10:02   ` Christian König
  2 siblings, 1 reply; 13+ messages in thread
From: zhoucm1 @ 2017-02-10  2:55 UTC (permalink / raw)
  To: Samuel Pitoiset, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 2017年02月10日 06:28, Samuel Pitoiset wrote:
> Move amdgpu_bo_unreserve() outside of the switch. While we are
> at it, add a missing break in the default case.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 1dc59aafec71..ae4658a10e2c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   		info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>   		info.domains = robj->prefered_domains;
>   		info.domain_flags = robj->flags;
> -		amdgpu_bo_unreserve(robj);
>   		if (copy_to_user(out, &info, sizeof(info)))
>   			r = -EFAULT;
NAK, your this change will break our previous deadlock fix for ww_mutex 
and mm->mmap_sem if I remember correctly.

Regards,
David Zhou
>   		break;
> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   	case AMDGPU_GEM_OP_SET_PLACEMENT:
>   		if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>   			r = -EPERM;
> -			amdgpu_bo_unreserve(robj);
>   			break;
>   		}
>   		robj->prefered_domains = args->value & (AMDGPU_GEM_DOMAIN_VRAM |
> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   		robj->allowed_domains = robj->prefered_domains;
>   		if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>   			robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
> -
> -		amdgpu_bo_unreserve(robj);
>   		break;
>   	default:
> -		amdgpu_bo_unreserve(robj);
>   		r = -EINVAL;
> +		break;
>   	}
>   
> +	amdgpu_bo_unreserve(robj);
>   out:
>   	drm_gem_object_unreference_unlocked(gobj);
>   	return r;

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm()
       [not found]     ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-02-10  2:58       ` zhoucm1
  2017-02-10 10:02       ` Christian König
  2017-02-10 17:06       ` Alex Deucher
  2 siblings, 0 replies; 13+ messages in thread
From: zhoucm1 @ 2017-02-10  2:58 UTC (permalink / raw)
  To: Samuel Pitoiset, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 2017年02月10日 06:28, Samuel Pitoiset wrote:
> This removes code duplication.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>

Thanks,
David Zhou
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-------
>   1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index ae4658a10e2c..76569e31bfd8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -506,13 +506,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
>   	list_for_each_entry(entry, list, head) {
>   		struct amdgpu_bo *bo =
>   			container_of(entry->bo, struct amdgpu_bo, tbo);
> -
> -		/* if anything is swapped out don't swap it in here,
> -		   just abort and wait for the next CS */
> -		if (!amdgpu_bo_gpu_accessible(bo))
> -			goto error;
> -
> -		if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
> +		if (amdgpu_gem_va_check(NULL, bo))
>   			goto error;
>   	}
>   

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-02-09 22:28   ` [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm() Samuel Pitoiset
  2017-02-10  2:55   ` [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() zhoucm1
@ 2017-02-10 10:02   ` Christian König
       [not found]     ` <35f1c55d-5ade-ffd0-6c9f-95fc891e1d77-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
  2 siblings, 1 reply; 13+ messages in thread
From: Christian König @ 2017-02-10 10:02 UTC (permalink / raw)
  To: Samuel Pitoiset, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

NAK, we need to drop the reservation before calling copy_to_user().

Otherwise you run into a double locking error when copy_to_user() is 
trying to copy to the BO in question.

Regards,
Christian.

Am 09.02.2017 um 23:28 schrieb Samuel Pitoiset:
> Move amdgpu_bo_unreserve() outside of the switch. While we are
> at it, add a missing break in the default case.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 1dc59aafec71..ae4658a10e2c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   		info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>   		info.domains = robj->prefered_domains;
>   		info.domain_flags = robj->flags;
> -		amdgpu_bo_unreserve(robj);
>   		if (copy_to_user(out, &info, sizeof(info)))
>   			r = -EFAULT;
>   		break;
> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   	case AMDGPU_GEM_OP_SET_PLACEMENT:
>   		if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>   			r = -EPERM;
> -			amdgpu_bo_unreserve(robj);
>   			break;
>   		}
>   		robj->prefered_domains = args->value & (AMDGPU_GEM_DOMAIN_VRAM |
> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>   		robj->allowed_domains = robj->prefered_domains;
>   		if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>   			robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
> -
> -		amdgpu_bo_unreserve(robj);
>   		break;
>   	default:
> -		amdgpu_bo_unreserve(robj);
>   		r = -EINVAL;
> +		break;
>   	}
>   
> +	amdgpu_bo_unreserve(robj);
>   out:
>   	drm_gem_object_unreference_unlocked(gobj);
>   	return r;


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm()
       [not found]     ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-02-10  2:58       ` zhoucm1
@ 2017-02-10 10:02       ` Christian König
  2017-02-10 17:06       ` Alex Deucher
  2 siblings, 0 replies; 13+ messages in thread
From: Christian König @ 2017-02-10 10:02 UTC (permalink / raw)
  To: Samuel Pitoiset, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Am 09.02.2017 um 23:28 schrieb Samuel Pitoiset:
> This removes code duplication.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>

Reviewed-by: Christian König <christian.koenig@amd.com>.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-------
>   1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index ae4658a10e2c..76569e31bfd8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -506,13 +506,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
>   	list_for_each_entry(entry, list, head) {
>   		struct amdgpu_bo *bo =
>   			container_of(entry->bo, struct amdgpu_bo, tbo);
> -
> -		/* if anything is swapped out don't swap it in here,
> -		   just abort and wait for the next CS */
> -		if (!amdgpu_bo_gpu_accessible(bo))
> -			goto error;
> -
> -		if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
> +		if (amdgpu_gem_va_check(NULL, bo))
>   			goto error;
>   	}
>   


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]     ` <589D2B9C.309-5C7GfCeVMHo@public.gmane.org>
@ 2017-02-10 10:11       ` Samuel Pitoiset
       [not found]         ` <0c47615f-6e93-eea1-418c-f846a0c1d3ae-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-10 10:11 UTC (permalink / raw)
  To: zhoucm1, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 02/10/2017 03:55 AM, zhoucm1 wrote:
>
>
> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>> at it, add a missing break in the default case.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> index 1dc59aafec71..ae4658a10e2c 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>           info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>>           info.domains = robj->prefered_domains;
>>           info.domain_flags = robj->flags;
>> -        amdgpu_bo_unreserve(robj);
>>           if (copy_to_user(out, &info, sizeof(info)))
>>               r = -EFAULT;
> NAK, your this change will break our previous deadlock fix for ww_mutex
> and mm->mmap_sem if I remember correctly.

Mmh, really? Can you pinpoint the commit? I don't see anything obvious 
in the history about that.

Thanks.

>
> Regards,
> David Zhou
>>           break;
>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>               r = -EPERM;
>> -            amdgpu_bo_unreserve(robj);
>>               break;
>>           }
>>           robj->prefered_domains = args->value &
>> (AMDGPU_GEM_DOMAIN_VRAM |
>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>           robj->allowed_domains = robj->prefered_domains;
>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>> -
>> -        amdgpu_bo_unreserve(robj);
>>           break;
>>       default:
>> -        amdgpu_bo_unreserve(robj);
>>           r = -EINVAL;
>> +        break;
>>       }
>>   +    amdgpu_bo_unreserve(robj);
>>   out:
>>       drm_gem_object_unreference_unlocked(gobj);
>>       return r;
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]     ` <35f1c55d-5ade-ffd0-6c9f-95fc891e1d77-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
@ 2017-02-10 10:17       ` Samuel Pitoiset
  0 siblings, 0 replies; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-10 10:17 UTC (permalink / raw)
  To: Christian König, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 02/10/2017 11:02 AM, Christian König wrote:
> NAK, we need to drop the reservation before calling copy_to_user().
>
> Otherwise you run into a double locking error when copy_to_user() is
> trying to copy to the BO in question.

Okay, I trust you but this seems tricky. copy_to_user() doesn't even 
take the BO as parameter, how can this happen?

>
> Regards,
> Christian.
>
> Am 09.02.2017 um 23:28 schrieb Samuel Pitoiset:
>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>> at it, add a missing break in the default case.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> index 1dc59aafec71..ae4658a10e2c 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>           info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>>           info.domains = robj->prefered_domains;
>>           info.domain_flags = robj->flags;
>> -        amdgpu_bo_unreserve(robj);
>>           if (copy_to_user(out, &info, sizeof(info)))
>>               r = -EFAULT;
>>           break;
>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>               r = -EPERM;
>> -            amdgpu_bo_unreserve(robj);
>>               break;
>>           }
>>           robj->prefered_domains = args->value &
>> (AMDGPU_GEM_DOMAIN_VRAM |
>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>> void *data,
>>           robj->allowed_domains = robj->prefered_domains;
>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>> -
>> -        amdgpu_bo_unreserve(robj);
>>           break;
>>       default:
>> -        amdgpu_bo_unreserve(robj);
>>           r = -EINVAL;
>> +        break;
>>       }
>>   +    amdgpu_bo_unreserve(robj);
>>   out:
>>       drm_gem_object_unreference_unlocked(gobj);
>>       return r;
>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]         ` <0c47615f-6e93-eea1-418c-f846a0c1d3ae-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-02-10 10:19           ` Christian König
       [not found]             ` <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Christian König @ 2017-02-10 10:19 UTC (permalink / raw)
  To: Samuel Pitoiset, zhoucm1,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Am 10.02.2017 um 11:11 schrieb Samuel Pitoiset:
>
>
> On 02/10/2017 03:55 AM, zhoucm1 wrote:
>>
>>
>> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>>> at it, add a missing break in the default case.
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>> index 1dc59aafec71..ae4658a10e2c 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>> void *data,
>>>           info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>>>           info.domains = robj->prefered_domains;
>>>           info.domain_flags = robj->flags;
>>> -        amdgpu_bo_unreserve(robj);
>>>           if (copy_to_user(out, &info, sizeof(info)))
>>>               r = -EFAULT;
>> NAK, your this change will break our previous deadlock fix for ww_mutex
>> and mm->mmap_sem if I remember correctly.
>
> Mmh, really? Can you pinpoint the commit? I don't see anything obvious 
> in the history about that.

David is right here. Not sure when we fixed that, but in general calling 
copy_to/from_user while a BO is reserved is illegal.

Otherwise somebody could send the kernel a memory mapped BO as address 
and the copy_to/from_user would just deadlock because it tries to 
reserve a BO while another (or the same) BO is already reserved in the 
call path.

Regards,
Christian.

>
> Thanks.
>
>>
>> Regards,
>> David Zhou
>>>           break;
>>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>> void *data,
>>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>>               r = -EPERM;
>>> -            amdgpu_bo_unreserve(robj);
>>>               break;
>>>           }
>>>           robj->prefered_domains = args->value &
>>> (AMDGPU_GEM_DOMAIN_VRAM |
>>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>> void *data,
>>>           robj->allowed_domains = robj->prefered_domains;
>>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>>> -
>>> -        amdgpu_bo_unreserve(robj);
>>>           break;
>>>       default:
>>> -        amdgpu_bo_unreserve(robj);
>>>           r = -EINVAL;
>>> +        break;
>>>       }
>>>   +    amdgpu_bo_unreserve(robj);
>>>   out:
>>>       drm_gem_object_unreference_unlocked(gobj);
>>>       return r;
>>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]             ` <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
@ 2017-02-10 10:22               ` Samuel Pitoiset
       [not found]                 ` <fcf33caf-41c4-5344-ede7-9be1cecf813c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-10 10:22 UTC (permalink / raw)
  To: Christian König, zhoucm1,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 02/10/2017 11:19 AM, Christian König wrote:
> Am 10.02.2017 um 11:11 schrieb Samuel Pitoiset:
>>
>>
>> On 02/10/2017 03:55 AM, zhoucm1 wrote:
>>>
>>>
>>> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>>>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>>>> at it, add a missing break in the default case.
>>>>
>>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> index 1dc59aafec71..ae4658a10e2c 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>>           info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;
>>>>           info.domains = robj->prefered_domains;
>>>>           info.domain_flags = robj->flags;
>>>> -        amdgpu_bo_unreserve(robj);
>>>>           if (copy_to_user(out, &info, sizeof(info)))
>>>>               r = -EFAULT;
>>> NAK, your this change will break our previous deadlock fix for ww_mutex
>>> and mm->mmap_sem if I remember correctly.
>>
>> Mmh, really? Can you pinpoint the commit? I don't see anything obvious
>> in the history about that.
>
> David is right here. Not sure when we fixed that, but in general calling
> copy_to/from_user while a BO is reserved is illegal.
>
> Otherwise somebody could send the kernel a memory mapped BO as address
> and the copy_to/from_user would just deadlock because it tries to
> reserve a BO while another (or the same) BO is already reserved in the
> call path.

Okay, makes more sense.

Thanks for the review. My goal is not to introduce new regressions but I 
didn't know that.

Maybe this should be explained in the code? Just a thought.

>
> Regards,
> Christian.
>
>>
>> Thanks.
>>
>>>
>>> Regards,
>>> David Zhou
>>>>           break;
>>>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>>>               r = -EPERM;
>>>> -            amdgpu_bo_unreserve(robj);
>>>>               break;
>>>>           }
>>>>           robj->prefered_domains = args->value &
>>>> (AMDGPU_GEM_DOMAIN_VRAM |
>>>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>> void *data,
>>>>           robj->allowed_domains = robj->prefered_domains;
>>>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>>>> -
>>>> -        amdgpu_bo_unreserve(robj);
>>>>           break;
>>>>       default:
>>>> -        amdgpu_bo_unreserve(robj);
>>>>           r = -EINVAL;
>>>> +        break;
>>>>       }
>>>>   +    amdgpu_bo_unreserve(robj);
>>>>   out:
>>>>       drm_gem_object_unreference_unlocked(gobj);
>>>>       return r;
>>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]                 ` <fcf33caf-41c4-5344-ede7-9be1cecf813c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-02-10 10:37                   ` Christian König
       [not found]                     ` <185ea16c-7062-f137-2234-a19f845062a6-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Christian König @ 2017-02-10 10:37 UTC (permalink / raw)
  To: Samuel Pitoiset, zhoucm1,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Am 10.02.2017 um 11:22 schrieb Samuel Pitoiset:
>
>
> On 02/10/2017 11:19 AM, Christian König wrote:
>> Am 10.02.2017 um 11:11 schrieb Samuel Pitoiset:
>>>
>>>
>>> On 02/10/2017 03:55 AM, zhoucm1 wrote:
>>>>
>>>>
>>>> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>>>>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>>>>> at it, add a missing break in the default case.
>>>>>
>>>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>>>>> ---
>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>>>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>> index 1dc59aafec71..ae4658a10e2c 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>> void *data,
>>>>>           info.alignment = robj->tbo.mem.page_alignment << 
>>>>> PAGE_SHIFT;
>>>>>           info.domains = robj->prefered_domains;
>>>>>           info.domain_flags = robj->flags;
>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>           if (copy_to_user(out, &info, sizeof(info)))
>>>>>               r = -EFAULT;
>>>> NAK, your this change will break our previous deadlock fix for 
>>>> ww_mutex
>>>> and mm->mmap_sem if I remember correctly.
>>>
>>> Mmh, really? Can you pinpoint the commit? I don't see anything obvious
>>> in the history about that.
>>
>> David is right here. Not sure when we fixed that, but in general calling
>> copy_to/from_user while a BO is reserved is illegal.
>>
>> Otherwise somebody could send the kernel a memory mapped BO as address
>> and the copy_to/from_user would just deadlock because it tries to
>> reserve a BO while another (or the same) BO is already reserved in the
>> call path.
>
> Okay, makes more sense.
>
> Thanks for the review. My goal is not to introduce new regressions but 
> I didn't know that.
>
> Maybe this should be explained in the code? Just a thought.

We do have a comment in the TTM mapping code I think.

But copy_to/from_user and BO reservation is just so common that we would 
need to add the same comment on a whole bunch of different places and 
that doesn't make to much sense.

But in this particular case a comment might make sense because I think 
somebody proposed the same patch before. Ah! Enlightenment, that also 
explains why you can't find it in the history. We just rejected the same 
patch multiple times now :)

Regards,
Christian.

>
>>
>> Regards,
>> Christian.
>>
>>>
>>> Thanks.
>>>
>>>>
>>>> Regards,
>>>> David Zhou
>>>>>           break;
>>>>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>> void *data,
>>>>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>>>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>>>>               r = -EPERM;
>>>>> -            amdgpu_bo_unreserve(robj);
>>>>>               break;
>>>>>           }
>>>>>           robj->prefered_domains = args->value &
>>>>> (AMDGPU_GEM_DOMAIN_VRAM |
>>>>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>> void *data,
>>>>>           robj->allowed_domains = robj->prefered_domains;
>>>>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>>>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>>>>> -
>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>           break;
>>>>>       default:
>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>           r = -EINVAL;
>>>>> +        break;
>>>>>       }
>>>>>   +    amdgpu_bo_unreserve(robj);
>>>>>   out:
>>>>>       drm_gem_object_unreference_unlocked(gobj);
>>>>>       return r;
>>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>>
>>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl()
       [not found]                     ` <185ea16c-7062-f137-2234-a19f845062a6-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
@ 2017-02-10 11:09                       ` Samuel Pitoiset
  0 siblings, 0 replies; 13+ messages in thread
From: Samuel Pitoiset @ 2017-02-10 11:09 UTC (permalink / raw)
  To: Christian König, zhoucm1,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW



On 02/10/2017 11:37 AM, Christian König wrote:
> Am 10.02.2017 um 11:22 schrieb Samuel Pitoiset:
>>
>>
>> On 02/10/2017 11:19 AM, Christian König wrote:
>>> Am 10.02.2017 um 11:11 schrieb Samuel Pitoiset:
>>>>
>>>>
>>>> On 02/10/2017 03:55 AM, zhoucm1 wrote:
>>>>>
>>>>>
>>>>> On 2017年02月10日 06:28, Samuel Pitoiset wrote:
>>>>>> Move amdgpu_bo_unreserve() outside of the switch. While we are
>>>>>> at it, add a missing break in the default case.
>>>>>>
>>>>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
>>>>>> ---
>>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 7 ++-----
>>>>>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>>> index 1dc59aafec71..ae4658a10e2c 100644
>>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>>>>>> @@ -660,7 +660,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>>> void *data,
>>>>>>           info.alignment = robj->tbo.mem.page_alignment <<
>>>>>> PAGE_SHIFT;
>>>>>>           info.domains = robj->prefered_domains;
>>>>>>           info.domain_flags = robj->flags;
>>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>>           if (copy_to_user(out, &info, sizeof(info)))
>>>>>>               r = -EFAULT;
>>>>> NAK, your this change will break our previous deadlock fix for
>>>>> ww_mutex
>>>>> and mm->mmap_sem if I remember correctly.
>>>>
>>>> Mmh, really? Can you pinpoint the commit? I don't see anything obvious
>>>> in the history about that.
>>>
>>> David is right here. Not sure when we fixed that, but in general calling
>>> copy_to/from_user while a BO is reserved is illegal.
>>>
>>> Otherwise somebody could send the kernel a memory mapped BO as address
>>> and the copy_to/from_user would just deadlock because it tries to
>>> reserve a BO while another (or the same) BO is already reserved in the
>>> call path.
>>
>> Okay, makes more sense.
>>
>> Thanks for the review. My goal is not to introduce new regressions but
>> I didn't know that.
>>
>> Maybe this should be explained in the code? Just a thought.
>
> We do have a comment in the TTM mapping code I think.
>
> But copy_to/from_user and BO reservation is just so common that we would
> need to add the same comment on a whole bunch of different places and
> that doesn't make to much sense.
>
> But in this particular case a comment might make sense because I think
> somebody proposed the same patch before. Ah! Enlightenment, that also
> explains why you can't find it in the history. We just rejected the same
> patch multiple times now :)

Yeah, I bet someone else will submit the same patch in few weeks/months 
without a comment explaining why we shouldn't change it. :)

>
> Regards,
> Christian.
>
>>
>>>
>>> Regards,
>>> Christian.
>>>
>>>>
>>>> Thanks.
>>>>
>>>>>
>>>>> Regards,
>>>>> David Zhou
>>>>>>           break;
>>>>>> @@ -668,7 +667,6 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>>> void *data,
>>>>>>       case AMDGPU_GEM_OP_SET_PLACEMENT:
>>>>>>           if (amdgpu_ttm_tt_get_usermm(robj->tbo.ttm)) {
>>>>>>               r = -EPERM;
>>>>>> -            amdgpu_bo_unreserve(robj);
>>>>>>               break;
>>>>>>           }
>>>>>>           robj->prefered_domains = args->value &
>>>>>> (AMDGPU_GEM_DOMAIN_VRAM |
>>>>>> @@ -677,14 +675,13 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev,
>>>>>> void *data,
>>>>>>           robj->allowed_domains = robj->prefered_domains;
>>>>>>           if (robj->allowed_domains == AMDGPU_GEM_DOMAIN_VRAM)
>>>>>>               robj->allowed_domains |= AMDGPU_GEM_DOMAIN_GTT;
>>>>>> -
>>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>>           break;
>>>>>>       default:
>>>>>> -        amdgpu_bo_unreserve(robj);
>>>>>>           r = -EINVAL;
>>>>>> +        break;
>>>>>>       }
>>>>>>   +    amdgpu_bo_unreserve(robj);
>>>>>>   out:
>>>>>>       drm_gem_object_unreference_unlocked(gobj);
>>>>>>       return r;
>>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>>>
>>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm()
       [not found]     ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-02-10  2:58       ` zhoucm1
  2017-02-10 10:02       ` Christian König
@ 2017-02-10 17:06       ` Alex Deucher
  2 siblings, 0 replies; 13+ messages in thread
From: Alex Deucher @ 2017-02-10 17:06 UTC (permalink / raw)
  To: Samuel Pitoiset; +Cc: amd-gfx list

On Thu, Feb 9, 2017 at 5:28 PM, Samuel Pitoiset
<samuel.pitoiset@gmail.com> wrote:
> This removes code duplication.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>

Applied.  thanks!

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index ae4658a10e2c..76569e31bfd8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -506,13 +506,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
>         list_for_each_entry(entry, list, head) {
>                 struct amdgpu_bo *bo =
>                         container_of(entry->bo, struct amdgpu_bo, tbo);
> -
> -               /* if anything is swapped out don't swap it in here,
> -                  just abort and wait for the next CS */
> -               if (!amdgpu_bo_gpu_accessible(bo))
> -                       goto error;
> -
> -               if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
> +               if (amdgpu_gem_va_check(NULL, bo))
>                         goto error;
>         }
>
> --
> 2.11.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-02-10 17:06 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-09 22:28 [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() Samuel Pitoiset
     [not found] ` <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-09 22:28   ` [PATCH 2/2] drm/amdgpu: use amdgpu_gem_va_check() in amdgpu_gem_va_update_vm() Samuel Pitoiset
     [not found]     ` <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10  2:58       ` zhoucm1
2017-02-10 10:02       ` Christian König
2017-02-10 17:06       ` Alex Deucher
2017-02-10  2:55   ` [PATCH 1/2] drm/amdgpu: drop multiple bo_unreserve() calls in amdgpu_gem_op_ioctl() zhoucm1
     [not found]     ` <589D2B9C.309-5C7GfCeVMHo@public.gmane.org>
2017-02-10 10:11       ` Samuel Pitoiset
     [not found]         ` <0c47615f-6e93-eea1-418c-f846a0c1d3ae-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10 10:19           ` Christian König
     [not found]             ` <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 10:22               ` Samuel Pitoiset
     [not found]                 ` <fcf33caf-41c4-5344-ede7-9be1cecf813c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-02-10 10:37                   ` Christian König
     [not found]                     ` <185ea16c-7062-f137-2234-a19f845062a6-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 11:09                       ` Samuel Pitoiset
2017-02-10 10:02   ` Christian König
     [not found]     ` <35f1c55d-5ade-ffd0-6c9f-95fc891e1d77-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-02-10 10:17       ` Samuel Pitoiset

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.