drm/amdkfd: Fix Incorrect VMIDs passed to HWS
[ Upstream commit b7dfbd2e601f3fee545bc158feceba4f340fe7cf ] 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: Tushar Patel <tushar.patel@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
7fc0610ad8
commit
d2e0931e6d
@@ -632,7 +632,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))");
|
||||||
|
@@ -664,15 +664,10 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
|
|||||||
- kfd->vm_info.first_vmid_kfd + 1;
|
- kfd->vm_info.first_vmid_kfd + 1;
|
||||||
|
|
||||||
/* 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 *
|
||||||
|
Reference in New Issue
Block a user