[PATCH 1/8] drm/amdgpu: make VMID assignment more fair
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Feb 1 08:36:41 UTC 2018
> 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.
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) {
>
More information about the amd-gfx
mailing list