gpu: nvgpu: Implement Pstate Board objs

Implemented parsing and sending performance table to pmu in
form of Pstate board objs under Perf_pstate unit.

NVGPU-3472

Change-Id: If8cc6373d1a03dd8f40a93a36203fa3d7127913f
Signed-off-by: rmylavarapu <rmylavarapu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2115564
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
rmylavarapu
2019-05-09 17:41:44 +05:30
committed by mobile promotions
parent 5eab914e34
commit b38f261981
13 changed files with 428 additions and 65 deletions

View File

@@ -68,6 +68,9 @@ static int tu104_pmu_handle_perf_event(struct gk20a *g, void *pmumsg)
case NV_PMU_PERF_MSG_ID_CHANGE_SEQ_COMPLETION:
nvgpu_log_fn(g, "Change Seq Completed");
break;
case NV_PMU_PERF_MSG_ID_PSTATES_INVALIDATE:
nvgpu_log_fn(g, "Pstate Invalidated");
break;
default:
WARN_ON(true);
break;
@@ -104,18 +107,22 @@ int nvgpu_perf_pmu_vfe_load_ps35(struct gk20a *g)
struct nv_pmu_rpc_struct_perf_load rpc;
int status = 0;
status = perf_pmu_init_vfe_perf_event(g);
if (status != 0) {
return status;
}
/*register call back for future VFE updates*/
g->ops.pmu_perf.handle_pmu_perf_event = tu104_pmu_handle_perf_event;
(void) memset(&rpc, 0, sizeof(struct nv_pmu_rpc_struct_perf_load));
rpc.b_load = true;
PMU_RPC_EXECUTE_CPB(status, pmu, PERF, LOAD, &rpc, 0);
if (status != 0) {
nvgpu_err(g, "Failed to execute RPC status=0x%x",
status);
nvgpu_thread_stop(&g->perf_pmu->vfe_init.state_task);
}
status = perf_pmu_init_vfe_perf_event(g);
/*register call back for future VFE updates*/
g->ops.pmu_perf.handle_pmu_perf_event = tu104_pmu_handle_perf_event;
return status;
}