gpu: nvgpu: Add multi GR gr_config utilty support

This CL covers the following code changes,
1) Added api to get the gr_config per gr_instance_id basis.
2) Added api to covert from gpu_instance_id to gr_instance_id.
3) Modified nvgpu_gr_exec_with_ret_for_instance() utility to handle
   generic data return type.

JIRA NVGPU-5662
JIRA NVGPU-5663

Change-Id: I4ab732e15cdbda25672975f99e23b5e5d27decb0
Signed-off-by: Lakshmanan M <lm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2413195
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Lakshmanan M
2020-09-14 16:57:32 +05:30
committed by Alex Waterman
parent ebb66b5d50
commit aef3367ca5
5 changed files with 99 additions and 11 deletions

View File

@@ -262,7 +262,7 @@ static inline u32 nvgpu_grmgr_get_gpu_instance_id(struct gk20a *g,
if (gpu_instance_id >= g->mig.num_gpu_instances) {
nvgpu_err(g,
"gpu_instance_id[%u] > num_gpu_instances[%u]",
"gpu_instance_id[%u] >= num_gpu_instances[%u]",
gpu_instance_id, g->mig.num_gpu_instances);
nvgpu_assert(
gpu_instance_id < g->mig.num_gpu_instances);
@@ -314,3 +314,29 @@ u32 nvgpu_grmgr_get_gr_gpc_phys_id(struct gk20a *g, u32 gr_instance_id, u32 gpc_
return gr_syspipe->gpcs[gpc_local_id].physical_id;
}
u32 nvgpu_grmgr_get_gr_instance_id(struct gk20a *g, u32 gpu_instance_id)
{
u32 gr_instance_id = 0U;
/* TODO : Add gr_instance_id for physical device when MIG is enabled. */
if ((nvgpu_is_enabled(g, NVGPU_SUPPORT_MIG)) &&
(gpu_instance_id != 0U)) {
if (gpu_instance_id < g->mig.num_gpu_instances) {
/* 0th entry is physical device gpu instance */
gr_instance_id = nvgpu_safe_sub_u32(
gpu_instance_id, 1U);
} else {
nvgpu_err(g,
"gpu_instance_id[%u] >= num_gpu_instances[%u]",
gpu_instance_id, g->mig.num_gpu_instances);
nvgpu_assert(
gpu_instance_id < g->mig.num_gpu_instances);
}
}
nvgpu_log(g, gpu_dbg_mig, "gpu_instance_id[%u] gr_instance_id[%u]",
gpu_instance_id, gr_instance_id);
return gr_instance_id;
}