Commit b7dfbd2e authored by Tushar Patel's avatar Tushar Patel Committed by Alex Deucher

drm/amdkfd: Fix Incorrect VMIDs passed to HWS

Compute-only GPUs have more than 8 VMIDs allocated to KFD. Fix
this by passing correct number of VMIDs to HWS

v2: squash in warning fix (Alex)
Signed-off-by: default avatarTushar Patel <tushar.patel@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a572f705
...@@ -680,7 +680,7 @@ MODULE_PARM_DESC(sched_policy, ...@@ -680,7 +680,7 @@ MODULE_PARM_DESC(sched_policy,
* Maximum number of processes that HWS can schedule concurrently. The maximum is the * Maximum number of processes that HWS can schedule concurrently. The maximum is the
* number of VMIDs assigned to the HWS, which is also the default. * number of VMIDs assigned to the HWS, which is also the default.
*/ */
int hws_max_conc_proc = 8; int hws_max_conc_proc = -1;
module_param(hws_max_conc_proc, int, 0444); module_param(hws_max_conc_proc, int, 0444);
MODULE_PARM_DESC(hws_max_conc_proc, MODULE_PARM_DESC(hws_max_conc_proc,
"Max # processes HWS can execute concurrently when sched_policy=0 (0 = no concurrency, #VMIDs for KFD = Maximum(default))"); "Max # processes HWS can execute concurrently when sched_policy=0 (0 = no concurrency, #VMIDs for KFD = Maximum(default))");
......
...@@ -483,15 +483,10 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, ...@@ -483,15 +483,10 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
} }
/* Verify module parameters regarding mapped process number*/ /* Verify module parameters regarding mapped process number*/
if ((hws_max_conc_proc < 0) if (hws_max_conc_proc >= 0)
|| (hws_max_conc_proc > kfd->vm_info.vmid_num_kfd)) { kfd->max_proc_per_quantum = min((u32)hws_max_conc_proc, kfd->vm_info.vmid_num_kfd);
dev_err(kfd_device, else
"hws_max_conc_proc %d must be between 0 and %d, use %d instead\n",
hws_max_conc_proc, kfd->vm_info.vmid_num_kfd,
kfd->vm_info.vmid_num_kfd);
kfd->max_proc_per_quantum = kfd->vm_info.vmid_num_kfd; kfd->max_proc_per_quantum = kfd->vm_info.vmid_num_kfd;
} else
kfd->max_proc_per_quantum = hws_max_conc_proc;
/* calculate max size of mqds needed for queues */ /* calculate max size of mqds needed for queues */
size = max_num_of_queues_per_device * size = max_num_of_queues_per_device *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment