[PATCH 1/1] drm/amdkfd: Print a warning when the runlist becomes oversubscribed
Kuehling, Felix
Felix.Kuehling at amd.com
Tue Jul 2 19:09:24 UTC 2019
On 2019-07-02 3:07 p.m., Kuehling, Felix wrote:
> Ping.
>
> Shaoyun, do you mind reviewing this patch?
Sorry, never mind. I missed that Oak already reviewed it.
Thank you Oak!
>
> Thanks,
> Felix
>
> On 2019-06-20 3:43 p.m., Kuehling, Felix wrote:
>> Oversubscription of queues or processes results in poor performance
>> mostly because HWS blinbly schedules busy and idle queues, resulting
>> in poor occupancy if many queues are idle.
>>
>> Let users know with a warning message when transitioning from a
>> non-oversubscribed to an oversubscribed runlist.
>>
>> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 6 +++++-
>> drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 +
>> 2 files changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
>> index c72c8f5fd54c..ccf6b2310316 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
>> @@ -203,11 +203,15 @@ static int pm_create_runlist_ib(struct packet_manager *pm,
>>
>> pr_debug("Finished map process and queues to runlist\n");
>>
>> - if (is_over_subscription)
>> + if (is_over_subscription) {
>> + if (!pm->is_over_subscription)
>> + pr_warn("Runlist is getting oversubscribed. Expect reduced ROCm performance.\n");
>> retval = pm->pmf->runlist(pm, &rl_buffer[rl_wptr],
>> *rl_gpu_addr,
>> alloc_size_bytes / sizeof(uint32_t),
>> true);
>> + }
>> + pm->is_over_subscription = is_over_subscription;
>>
>> for (i = 0; i < alloc_size_bytes / sizeof(uint32_t); i++)
>> pr_debug("0x%2X ", rl_buffer[i]);
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
>> index 4070e6d24ef7..d4bba0124d29 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
>> @@ -937,6 +937,7 @@ struct packet_manager {
>> bool allocated;
>> struct kfd_mem_obj *ib_buffer_obj;
>> unsigned int ib_size_bytes;
>> + bool is_over_subscription;
>>
>> const struct packet_manager_funcs *pmf;
>> };
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list