Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: Update mes_v11_api_def.h

Update MES API to support oversubscription without aggregated doorbell
for usermode queues.

v2: Change oversubscription_no_aggregated_en to is_kfd_process (align
with MES)

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Jack Xiao <Jack.Xiao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Graham Sider and committed by
Alex Deucher
a9579956 e77a541f

+9 -1
+1
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
··· 677 677 queue_input.wptr_addr = qprops->wptr_gpu_addr; 678 678 queue_input.queue_type = qprops->queue_type; 679 679 queue_input.paging = qprops->paging; 680 + queue_input.is_kfd_process = 0; 680 681 681 682 r = adev->mes.funcs->add_hw_queue(&adev->mes, &queue_input); 682 683 if (r) {
+1
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
··· 214 214 uint32_t gws_size; 215 215 uint64_t tba_addr; 216 216 uint64_t tma_addr; 217 + uint32_t is_kfd_process; 217 218 }; 218 219 219 220 struct mes_remove_queue_input {
+2
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
··· 165 165 mes_add_queue_pkt.gws_size = input->gws_size; 166 166 mes_add_queue_pkt.trap_handler_addr = input->tba_addr; 167 167 mes_add_queue_pkt.tma_addr = input->tma_addr; 168 + mes_add_queue_pkt.is_kfd_process = input->is_kfd_process; 168 169 169 170 mes_add_queue_pkt.api_status.api_completion_fence_addr = 170 171 mes->ring.fence_drv.gpu_addr; ··· 313 312 mes_set_hw_res_pkt.disable_reset = 1; 314 313 mes_set_hw_res_pkt.disable_mes_log = 1; 315 314 mes_set_hw_res_pkt.use_different_vmid_compute = 1; 315 + mes_set_hw_res_pkt.oversubscription_timer = 50; 316 316 317 317 mes_set_hw_res_pkt.api_status.api_completion_fence_addr = 318 318 mes->ring.fence_drv.gpu_addr;
+2
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
··· 204 204 } else 205 205 queue_input.wptr_addr = (uint64_t)q->properties.write_ptr; 206 206 207 + queue_input.is_kfd_process = 1; 208 + 207 209 queue_input.paging = false; 208 210 queue_input.tba_addr = qpd->tba_addr; 209 211 queue_input.tma_addr = qpd->tma_addr;
+3 -1
drivers/gpu/drm/amd/include/mes_v11_api_def.h
··· 226 226 }; 227 227 uint32_t uint32_t_all; 228 228 }; 229 + uint32_t oversubscription_timer; 229 230 }; 230 231 231 232 uint32_t max_dwords_in_api[API_FRAME_SIZE_IN_DWORDS]; ··· 266 265 uint32_t is_gang_suspended : 1; 267 266 uint32_t is_tmz_queue : 1; 268 267 uint32_t map_kiq_utility_queue : 1; 269 - uint32_t reserved : 23; 268 + uint32_t is_kfd_process : 1; 269 + uint32_t reserved : 22; 270 270 }; 271 271 struct MES_API_STATUS api_status; 272 272 uint64_t tma_addr;