* [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.