[PATCH] drm/amdgpu: Replace HQD terminology with slots naming

Christian König christian.koenig at amd.com
Mon Jul 7 13:24:26 UTC 2025


On 07.07.25 15:22, Alex Deucher wrote:
> On Mon, Jul 7, 2025 at 5:48 AM Christian König <christian.koenig at amd.com> wrote:
>>
>> On 04.07.25 09:26, Jesse Zhang wrote:
>>> The term "HQD" is CP-specific and doesn't
>>> accurately describe the queue resources for other IP blocks like SDMA,
>>> VCN, or VPE. This change:
>>>
>>> 1. Renames `num_hqds` to `num_slots` in amdgpu_kms.c to better reflect
>>>    the generic nature of the resource counting
>>> 2. Updates the UAPI struct member from `userq_num_hqds` to `userq_num_slots`
>>> 3. Maintains the same functionality while using more appropriate terminology
>>>
>>> Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
>>
>> Acked-by: Christian König <christian.koenig at amd.com>
>>
>> BTW: Why userspace needs to know that in the first place?
> 
> So IGT can determine how many queues to create to hit over subscription.

Ah! Good point!

Yeah, that makes sense.

Thanks,
Christian.

> 
> Alex
> 
>>
>>> ---
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 10 +++++-----
>>>  include/uapi/drm/amdgpu_drm.h           |  4 ++--
>>>  2 files changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
>>> index 4aab5e394ce2..e2aa2264fa0b 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
>>> @@ -399,7 +399,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
>>>       uint32_t ib_size_alignment = 0;
>>>       enum amd_ip_block_type type;
>>>       unsigned int num_rings = 0;
>>> -     uint32_t num_hqds = 0;
>>> +     uint32_t num_slots = 0;
>>>       unsigned int i, j;
>>>
>>>       if (info->query_hw_ip.ip_instance >= AMDGPU_HW_IP_INSTANCE_MAX_COUNT)
>>> @@ -415,7 +415,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
>>>
>>>               if (!adev->gfx.disable_uq) {
>>>                       for (i = 0; i < AMDGPU_MES_MAX_GFX_PIPES; i++)
>>> -                             num_hqds += hweight32(adev->mes.gfx_hqd_mask[i]);
>>> +                             num_slots += hweight32(adev->mes.gfx_hqd_mask[i]);
>>>               }
>>>
>>>               ib_start_alignment = 32;
>>> @@ -430,7 +430,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
>>>
>>>               if (!adev->sdma.disable_uq) {
>>>                       for (i = 0; i < AMDGPU_MES_MAX_COMPUTE_PIPES; i++)
>>> -                             num_hqds += hweight32(adev->mes.compute_hqd_mask[i]);
>>> +                             num_slots += hweight32(adev->mes.compute_hqd_mask[i]);
>>>               }
>>>
>>>               ib_start_alignment = 32;
>>> @@ -445,7 +445,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
>>>
>>>               if (!adev->gfx.disable_uq) {
>>>                       for (i = 0; i < AMDGPU_MES_MAX_SDMA_PIPES; i++)
>>> -                             num_hqds += hweight32(adev->mes.sdma_hqd_mask[i]);
>>> +                             num_slots += hweight32(adev->mes.sdma_hqd_mask[i]);
>>>               }
>>>
>>>               ib_start_alignment = 256;
>>> @@ -589,7 +589,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
>>>       }
>>>       result->capabilities_flags = 0;
>>>       result->available_rings = (1 << num_rings) - 1;
>>> -     result->userq_num_hqds = num_hqds;
>>> +     result->userq_num_slots = num_slots;
>>>       result->ib_start_alignment = ib_start_alignment;
>>>       result->ib_size_alignment = ib_size_alignment;
>>>       return 0;
>>> diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h
>>> index 66c4a03ac9f9..bdedbaccf776 100644
>>> --- a/include/uapi/drm/amdgpu_drm.h
>>> +++ b/include/uapi/drm/amdgpu_drm.h
>>> @@ -1493,8 +1493,8 @@ struct drm_amdgpu_info_hw_ip {
>>>       __u32  available_rings;
>>>       /** version info: bits 23:16 major, 15:8 minor, 7:0 revision */
>>>       __u32  ip_discovery_version;
>>> -     /* Userq available hqds */
>>> -     __u32  userq_num_hqds;
>>> +     /* Userq available slots */
>>> +     __u32  userq_num_slots;
>>>  };
>>>
>>>  /* GFX metadata BO sizes and alignment info (in bytes) */
>>



More information about the amd-gfx mailing list