Am 01.02.2018 um 09:55 schrieb Chunming Zhou: > > > On 2018å¹´02æ??01æ?¥ 16:36, Christian König wrote: >>> reserved vmid is independent on id_mgr >> And that is exactly the reason why I want to have that here. >> >> If we don't fix this reserving a VMID would otherwise give the >> process an unfair advantage while scheduling jobs. > ok, I see your mean, that's same why you always make idle vmid for > re-using vmid. Yes, exactly. > Adding this explain to patch commit is better. Good point. > > Acked-by: Chunming Zhou <david1.zhou at amd.com> for this patch and patch > #7 then. With the addition of the mutex can I get your rb or ab for patch #3 as well? Cause then it looks ready for commit. Thanks, Christian. > > Regards, > David Zhou >> >> Regards, >> Christian. >> >> Am 01.02.2018 um 05:42 schrieb Chunming Zhou: >>> NAK, reserved vmid is independent on id_mgr, which is removed from >>> id mgr when process allocates reserved vmid. >>> >>> >>> Regards, >>> >>> David Zhou >>> >>> >>> On 2018å¹´01æ??31æ?¥ 23:47, Christian König wrote: >>>> To guarantee fairness between processes grab reserved VMID only when >>>> there is an idle one. >>>> >>>> Signed-off-by: Christian König <christian.koenig at amd.com> >>>> --- >>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 12 +++++++----- >>>>  1 file changed, 7 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c >>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c >>>> index c13cf7e79b2e..7a3d0de7425d 100644 >>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c >>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c >>>> @@ -268,11 +268,6 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, >>>> struct amdgpu_ring *ring, >>>>      int r = 0; >>>>       mutex_lock(&id_mgr->lock); >>>> -   if (vm->reserved_vmid[vmhub]) { >>>> -       r = amdgpu_vmid_grab_reserved_locked(vm, ring, sync, >>>> fence, job); >>>> -       mutex_unlock(&id_mgr->lock); >>>> -       return r; >>>> -   } >>>>      fences = kmalloc_array(sizeof(void *), id_mgr->num_ids, >>>> GFP_KERNEL); >>>>      if (!fences) { >>>>          mutex_unlock(&id_mgr->lock); >>>> @@ -319,6 +314,13 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, >>>> struct amdgpu_ring *ring, >>>>      } >>>>      kfree(fences); >>>>  +   if (vm->reserved_vmid[vmhub]) { >>>> +       r = amdgpu_vmid_grab_reserved_locked(vm, ring, sync, >>>> +                            fence, job); >>>> +       mutex_unlock(&id_mgr->lock); >>>> +       return r; >>>> +   } >>>> + >>>>      job->vm_needs_flush = vm->use_cpu_for_update; >>>>      /* Check if we can use a VMID already assigned to this VM */ >>>>      list_for_each_entry_reverse(id, &id_mgr->ids_lru, list) { >>> >> > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx