mirror_ubuntu-kernels/drivers/gpu/drm/amd/amdkfd
Joseph Greathouse b8020b0304 drm/amdkfd: Enable over-subscription with >1 GWS queue
The current GWS usage model will only allows a single GWS-enabled
process to be active on the GPU at once. This ensures that a
barrier-using kernel gets a known amount of GPU hardware, to
prevent deadlock due to inability to go beyond the GWS barrier.

The HWS watches how many GWS entries are assigned to each process,
and goes into over-subscription mode when two processes need more
than the 64 that are available. The current KFD method for working
with this is to allocate all 64 GWS entries to each GWS-capable
process.

When more than one GWS-enabled process is in the runlist, we must
make sure the runlist is in over-subscription mode, so that the
HWS gets a chained RUN_LIST packet and continues scheduling
kernels.

Signed-off-by: Joseph Greathouse <Joseph.Greathouse@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2020-04-28 16:20:30 -04:00
..
cik_event_interrupt.c drm/amdkfd: Eliminate get_atc_vmid_pasid_mapping_valid 2019-10-03 09:11:04 -05:00
cik_int.h drm/amdkfd: Clean up reference of radeon 2018-07-11 22:33:08 -04:00
cik_regs.h drm/amdkfd: Delete a duplicate statement in set_pasid_vmid_mapping() 2018-11-05 14:21:13 -05:00
cwsr_trap_handler_gfx8.asm drm/amdkfd: Remove dead code from gfx8/gfx9 trap handlers 2019-07-30 23:22:18 -05:00
cwsr_trap_handler_gfx9.asm drm/amdkfd: Remove dead code from gfx8/gfx9 trap handlers 2019-07-30 23:22:18 -05:00
cwsr_trap_handler_gfx10.asm drm/amdkfd: Fix race in gfx10 context restore handler 2019-10-03 09:11:04 -05:00
cwsr_trap_handler.h drm/amdkfd: Fix race in gfx10 context restore handler 2019-10-03 09:11:04 -05:00
Kconfig drm/amdgpu: fix license on Kconfig and Makefiles 2019-12-11 15:22:08 -05:00
kfd_chardev.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_crat.c drm/amdkfd: Adjust three kfd dmesg printings during initialization 2020-04-22 18:11:49 -04:00
kfd_crat.h drm/amdkfd: Adjust weight to represent num_hops info when report xgmi iolink 2019-05-24 12:20:48 -05:00
kfd_dbgdev.c drm/amdkfd: Eliminate unnecessary kernel queue function pointers 2019-12-05 16:24:36 -05:00
kfd_dbgdev.h drm/amdkfd: Clean up reference of radeon 2018-07-11 22:33:08 -04:00
kfd_dbgmgr.c drm/amdkfd: Use hex print format for pasid 2019-10-03 09:11:03 -05:00
kfd_dbgmgr.h
kfd_debugfs.c drm/amdkfd: Fix permissions of hang_hws 2020-01-07 11:54:30 -05:00
kfd_device_queue_manager_cik.c drm/amdkfd: Introduce asic-specific mqd_manager_init function 2019-05-24 12:21:02 -05:00
kfd_device_queue_manager_v9.c drm/amdkfd: Consistently apply noretry setting 2019-07-16 13:02:55 -05:00
kfd_device_queue_manager_v10.c drm/amdkfd: Add navi10 support to amdkfd. (v3) 2019-06-21 18:59:24 -05:00
kfd_device_queue_manager_vi.c drm/amdkfd: Introduce asic-specific mqd_manager_init function 2019-05-24 12:21:02 -05:00
kfd_device_queue_manager.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_device_queue_manager.h drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_device.c drm/amdkfd: Enable GWS based on FW Support 2020-04-28 16:20:30 -04:00
kfd_doorbell.c drm/amdkfd: Use better name to indicate the offset is in dwords 2019-11-13 15:29:45 -05:00
kfd_events.c drm/amdkfd: Use pr_debug to print the message of reaching event limit 2020-03-10 15:54:27 -04:00
kfd_events.h drm/amdkfd: Implement GPU reset handlers in KFD 2018-07-11 22:32:56 -04:00
kfd_flat_memory.c drm: amd: fix spelling mistake "shoudn't" -> "shouldn't" 2020-03-19 00:03:05 -04:00
kfd_int_process_v9.c drm/amdkfd: Query vmid pasid mapping through stored info for non HWS 2019-10-03 09:11:03 -05:00
kfd_interrupt.c drm/amdkfd: fix a potential NULL pointer dereference (v2) 2019-10-03 09:11:00 -05:00
kfd_iommu.c drm/amdkfd: remove set but not used variable 'top_dev' 2019-11-19 10:12:51 -05:00
kfd_iommu.h
kfd_kernel_queue.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_kernel_queue.h drm/amdkfd: Eliminate unnecessary kernel queue function pointers 2019-12-05 16:24:36 -05:00
kfd_module.c drm/amdkfd: add missing void argument to function kgd2kfd_init 2019-10-07 15:10:26 -05:00
kfd_mqd_manager_cik.c drm/amdkfd: DIQ should not use HIQ way to allocate memory 2019-11-22 14:27:11 -05:00
kfd_mqd_manager_v9.c drm/amdkfd: Add more comments on GFX9 user CP queue MQD workaround 2020-03-06 14:34:30 -05:00
kfd_mqd_manager_v10.c drm/amdkfd: use map_queues for hiq on gfx v10 as well 2020-01-16 13:34:57 -05:00
kfd_mqd_manager_vi.c drm/amdkfd: Remove duplicate functions update_mqd_hiq() 2019-11-22 14:27:11 -05:00
kfd_mqd_manager.c drm/amdkfd: Extend CU mask to 8 SEs (v3) 2019-08-02 10:19:11 -05:00
kfd_mqd_manager.h drm/amdkfd: Extend CU mask to 8 SEs (v3) 2019-08-02 10:19:11 -05:00
kfd_packet_manager_v9.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_packet_manager_vi.c drm/amdkfd: Rename kfd_kernel_queue_*.c to kfd_packet_manager_*.c 2019-11-19 09:47:23 -05:00
kfd_packet_manager.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_pasid.c drm/amdkfd: Simplify kfd2kgd interface 2018-11-05 14:21:07 -05:00
kfd_pm4_headers_ai.h drm/amdkfd: Support bigger gds size 2019-07-18 14:18:03 -05:00
kfd_pm4_headers_diq.h
kfd_pm4_headers_vi.h drm/amdkfd: Delete alloc_format field from map_queue struct 2019-05-24 12:21:03 -05:00
kfd_pm4_headers.h
kfd_pm4_opcodes.h
kfd_priv.h drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_process_queue_manager.c drm/amdkfd: New IOCTL to allocate queue GWS (v2) 2020-04-28 16:20:30 -04:00
kfd_process.c drm/amdkfd: Enable over-subscription with >1 GWS queue 2020-04-28 16:20:30 -04:00
kfd_queue.c drm/amdkfd: use %px to print user space address instead of %p 2018-05-01 17:56:04 -04:00
kfd_topology.c drm/amdkfd: Enable GWS based on FW Support 2020-04-28 16:20:30 -04:00
kfd_topology.h drm/amdkfd: Put ASIC revision into HSA capability 2020-04-28 11:04:56 -04:00
Makefile drm/amdkfd: Rename kfd_kernel_queue_*.c to kfd_packet_manager_*.c 2019-11-19 09:47:23 -05:00
soc15_int.h drm/amdkfd: Add SOC15 interrupt processing support 2018-04-10 17:33:10 -04:00