* [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[parent not found: <20170209222824.3267-1-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [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
[parent not found: <20170209222824.3267-2-samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* 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 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 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
* 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
[parent not found: <589D2B9C.309-5C7GfCeVMHo@public.gmane.org>]
* 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
[parent not found: <0c47615f-6e93-eea1-418c-f846a0c1d3ae-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* 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
[parent not found: <f297f821-678a-392a-2786-0307dc7a54ad-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>]
* 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
[parent not found: <fcf33caf-41c4-5344-ede7-9be1cecf813c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* 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
[parent not found: <185ea16c-7062-f137-2234-a19f845062a6-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>]
* 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 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
[parent not found: <35f1c55d-5ade-ffd0-6c9f-95fc891e1d77-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>]
* 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
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.