mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-05 19:31:57 -04:00
drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption
[ Upstream commit f3820e9d356132e18405cd7606e22dc87ccfa6d1 ] When KFD asks CP to preempt queues, other than preempt CP queues, CP also requests SDMA to preempt SDMA queues with UNMAP_LATENCY timeout. Currently queue_preemption_timeout_ms is 9000 ms by default but can be configured via module parameter. KFD_UNMAP_LATENCY_MS is hard coded as 4000 ms though. This patch ties KFD_UNMAP_LATENCY_MS to queue_preemption_timeout_ms so in a slow system such as emulator, both CP and SDMA slowness are taken into account. Signed-off-by: Amber Lin <Amber.Lin@amd.com> Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
c756f712ea
commit
eb6e1fb9b9
1 changed files with 8 additions and 1 deletions
|
|
@ -105,7 +105,14 @@
|
|||
|
||||
#define KFD_KERNEL_QUEUE_SIZE 2048
|
||||
|
||||
#define KFD_UNMAP_LATENCY_MS (4000)
|
||||
/* KFD_UNMAP_LATENCY_MS is the timeout CP waiting for SDMA preemption. One XCC
|
||||
* can be associated to 2 SDMA engines. queue_preemption_timeout_ms is the time
|
||||
* driver waiting for CP returning the UNMAP_QUEUE fence. Thus the math is
|
||||
* queue_preemption_timeout_ms = sdma_preemption_time * 2 + cp workload
|
||||
* The format here makes CP workload 10% of total timeout
|
||||
*/
|
||||
#define KFD_UNMAP_LATENCY_MS \
|
||||
((queue_preemption_timeout_ms - queue_preemption_timeout_ms / 10) >> 1)
|
||||
|
||||
/*
|
||||
* 512 = 0x200
|
||||
|
|
|
|||
Loading…
Reference in a new issue