On 9/30/26 13:58, Khatri, Sunil wrote:
> 
> On 30-09-2026 05:11 pm, Christian König wrote:
>> On 9/30/26 13:35, Khatri, Sunil wrote:
>>> On 30-09-2026 05:01 pm, Christian König wrote:
>>>> On 9/30/26 13:16, Sunil Khatri wrote:
>>>>> vmid_mask_gfxhub/vmid_mask_mmhub makes more sense logically in
>>>>> vm_manager than the mes ip struct.
>>>> That's the VMID mask for the user queues, so I would name it 
>>>> vmid_mask_uq_gfxhub/vmid_mask_uq_mmhub.
>>>>
>>>> Apart from that looks good to me.
>>> Noted. Another point here if that is the case then should i change that in 
>>> MES HW layer too..
>>> unionMESAPI_SET_HW_RESOURCES{
>>>          struct{
>>>                  unionMES_API_HEADER   header;
>>>                  uint32_t               vmid_mask_mmhub;
>>>                  uint32_t               vmid_mask_gfxhub;
>>>
>>> Should i update here too or this is fine ??
>> No, that is fine. The MES handles only user queues here so that is unambious.
>>
>> But thinking more about it, we should also do a bunch of more cleanups.
>>
>> The structure amdgpu_vmid_mgr is really the per VMHUB structure for example.
>>
>> And the vmid_mask in the that structure is really the mask of VMIDs used by 
>> kernel queues.
>>
>> We should probably name that structure and the field more appropriate.
>>
>> Regards,
>> Christian.
> 
> That's true.
> But since it is used by both GFXHUB as well as MMHUB so something generic 
> seems ok to me. But we can change vmid_mask -> kernel_vmid_mask. Suggest if 
> you still think to change the amdgpu_vmid_mgr to something else like 
> amdgpu_vmhub_vmid_mgr or amdgpu_kernel_vmid_mgr... but these names seems 
> pretty big.

Just name that amdgpu_vmhub instead.

And using kq and uq as accronyms for kernel and user queues seem pretty 
staright forward to me.

Regards,
Christian.

> 
> Regards
> Sunil Khatri
> 
>>
>>> Regards
>>> Sunil Khatri
>>>
>>>> Regards,
>>>> Christian.
>>>>
>>>>> Signed-off-by: Sunil Khatri <[email protected]>
>>>>> ---
>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 8 ++++----
>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 2 --
>>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h  | 4 ++++
>>>>>   drivers/gpu/drm/amd/amdgpu/mes_v11_0.c  | 4 ++--
>>>>>   drivers/gpu/drm/amd/amdgpu/mes_v12_0.c  | 4 ++--
>>>>>   drivers/gpu/drm/amd/amdgpu/mes_v12_1.c  | 4 ++--
>>>>>   6 files changed, 14 insertions(+), 12 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>>>>> index 5285c1d1fd4cb..9c36ccf5d5659 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>>>>> @@ -137,8 +137,8 @@ int amdgpu_mes_init(struct amdgpu_device *adev)
>>>>>       total_vmid_mask = (u32)((1UL << 16) - 1);
>>>>>       reserved_vmid_mask = (u32)((1UL << adev->vm_manager.first_kfd_vmid) 
>>>>> - 1);
>>>>>   -    adev->mes.vmid_mask_mmhub = 0xFF00;
>>>>> -    adev->mes.vmid_mask_gfxhub = total_vmid_mask & ~reserved_vmid_mask;
>>>>> +    adev->vm_manager.vmid_mask_mmhub = 0xFF00;
>>>>> +    adev->vm_manager.vmid_mask_gfxhub = total_vmid_mask & 
>>>>> ~reserved_vmid_mask;
>>>>>         num_pipes = adev->gfx.me.num_pipe_per_me * adev->gfx.me.num_me;
>>>>>       if (num_pipes > AMDGPU_MES_MAX_GFX_PIPES)
>>>>> @@ -184,8 +184,8 @@ int amdgpu_mes_init(struct amdgpu_device *adev)
>>>>>         dev_info(adev->dev,
>>>>>                "MES: vmid_mask_mmhub 0x%08x, vmid_mask_gfxhub 0x%08x\n",
>>>>> -             adev->mes.vmid_mask_mmhub,
>>>>> -             adev->mes.vmid_mask_gfxhub);
>>>>> +             adev->vm_manager.vmid_mask_mmhub,
>>>>> +             adev->vm_manager.vmid_mask_gfxhub);
>>>>>         dev_info(adev->dev,
>>>>>                "MES: gfx_hqd_mask 0x%08x, compute_hqd_mask 0x%08x, 
>>>>> sdma_hqd_mask 0x%08x\n",
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h 
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>>>>> index 594fb817e0a38..2b13a5b375393 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>>>>> @@ -122,8 +122,6 @@ struct amdgpu_mes {
>>>>>       void                            
>>>>> *mqd_backup[AMDGPU_MAX_MES_INST_PIPES];
>>>>>       struct amdgpu_irq_src            irq[AMDGPU_MAX_MES_INST_PIPES];
>>>>>   -    uint32_t                        vmid_mask_gfxhub;
>>>>> -    uint32_t                        vmid_mask_mmhub;
>>>>>       uint32_t                        
>>>>> gfx_hqd_mask[AMDGPU_MES_MAX_GFX_PIPES];
>>>>>       uint32_t                        
>>>>> compute_hqd_mask[AMDGPU_MES_MAX_COMPUTE_PIPES];
>>>>>       uint32_t                        
>>>>> sdma_hqd_mask[AMDGPU_MES_MAX_SDMA_PIPES];
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h 
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
>>>>> index 98cdd7e3475fb..5f22c146e2339 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
>>>>> @@ -413,6 +413,10 @@ struct amdgpu_vm_manager {
>>>>>       /* Global registration of recent page fault information */
>>>>>       struct amdgpu_vm_fault_info    fault_info;
>>>>>       unsigned int                npa_vmid;
>>>>> +
>>>>> +    /* VMID masks for GFXHUB and MMHUB */
>>>>> +    uint32_t                        vmid_mask_gfxhub;
>>>>> +    uint32_t                        vmid_mask_mmhub;
>>>>>   };
>>>>>     struct amdgpu_bo_va_mapping;
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
>>>>> index d1cd665ab301c..178ef8dfe6d61 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
>>>>> @@ -1080,8 +1080,8 @@ static int mes_v11_0_set_hw_resources(struct 
>>>>> amdgpu_mes *mes)
>>>>>       mes_set_hw_res_pkt.header.opcode = MES_SCH_API_SET_HW_RSRC;
>>>>>       mes_set_hw_res_pkt.header.dwsize = API_FRAME_SIZE_IN_DWORDS;
>>>>>   -    mes_set_hw_res_pkt.vmid_mask_mmhub = mes->vmid_mask_mmhub;
>>>>> -    mes_set_hw_res_pkt.vmid_mask_gfxhub = mes->vmid_mask_gfxhub;
>>>>> +    mes_set_hw_res_pkt.vmid_mask_mmhub = 
>>>>> adev->vm_manager.vmid_mask_mmhub;
>>>>> +    mes_set_hw_res_pkt.vmid_mask_gfxhub = 
>>>>> adev->vm_manager.vmid_mask_gfxhub;
>>>>>       mes_set_hw_res_pkt.gds_size = adev->gds.gds_size;
>>>>>       mes_set_hw_res_pkt.paging_vmid = 0;
>>>>>       mes_set_hw_res_pkt.g_sch_ctx_gpu_mc_ptr = mes->sch_ctx_gpu_addr[0];
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
>>>>> index c0719d8fa63e9..f2dd4323ffd3e 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
>>>>> @@ -1042,8 +1042,8 @@ static int mes_v12_0_set_hw_resources(struct 
>>>>> amdgpu_mes *mes, int pipe)
>>>>>       mes_set_hw_res_pkt.header.dwsize = API_FRAME_SIZE_IN_DWORDS;
>>>>>         if (pipe == AMDGPU_MES_SCHED_PIPE) {
>>>>> -        mes_set_hw_res_pkt.vmid_mask_mmhub = mes->vmid_mask_mmhub;
>>>>> -        mes_set_hw_res_pkt.vmid_mask_gfxhub = mes->vmid_mask_gfxhub;
>>>>> +        mes_set_hw_res_pkt.vmid_mask_mmhub = 
>>>>> adev->vm_manager.vmid_mask_mmhub;
>>>>> +        mes_set_hw_res_pkt.vmid_mask_gfxhub = 
>>>>> adev->vm_manager.vmid_mask_gfxhub;
>>>>>           mes_set_hw_res_pkt.gds_size = adev->gds.gds_size;
>>>>>           mes_set_hw_res_pkt.paging_vmid = 0;
>>>>>   diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v12_1.c 
>>>>> b/drivers/gpu/drm/amd/amdgpu/mes_v12_1.c
>>>>> index 20159fb9d6ea3..c3e1f9a746ce0 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/mes_v12_1.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v12_1.c
>>>>> @@ -685,8 +685,8 @@ static int mes_v12_1_set_hw_resources(struct 
>>>>> amdgpu_mes *mes,
>>>>>       mes_set_hw_res_pkt.header.dwsize = API_FRAME_SIZE_IN_DWORDS;
>>>>>         if (pipe == AMDGPU_MES_SCHED_PIPE) {
>>>>> -        mes_set_hw_res_pkt.vmid_mask_mmhub = mes->vmid_mask_mmhub;
>>>>> -        mes_set_hw_res_pkt.vmid_mask_gfxhub = mes->vmid_mask_gfxhub;
>>>>> +        mes_set_hw_res_pkt.vmid_mask_mmhub = 
>>>>> adev->vm_manager.vmid_mask_mmhub;
>>>>> +        mes_set_hw_res_pkt.vmid_mask_gfxhub = 
>>>>> adev->vm_manager.vmid_mask_gfxhub;
>>>>>           mes_set_hw_res_pkt.gds_size = adev->gds.gds_size;
>>>>>           mes_set_hw_res_pkt.paging_vmid = 0;
>>>>>   

Reply via email to