diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2017-10-20 07:00:42 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-20 03:34:15 -0500 |
commit | 1ab4754c052b639427f38202860d064c2fa03b57 (patch) | |
tree | 0d7740707f0a1c602d1838f256aed07778f6fba4 /drivers/gpu/nvgpu/include | |
parent | 9d04e970937657d11620d812c29a5d10828440fc (diff) |
gpu: nvgpu: Kill pg init thread if pmu boot fails
- Created nvgpu_kill_task_pg_init() method to set
pmu state to PMU_STATE_EXIT & make thread stop,
and poll to confirm thread stopped.
- Check for PMU/SEC2 ACR secure boot completion
status & initiate pg init thread kill if ACR boot
exits with error, which fails to validate &
boot LS-PMU.
- Set pmu state to PMU_STATE_OFF after thread kill
during ACR boot failure.
Issue: pg init task blocks if PMU boot fails &
cause kernel to show message "task nvgpu_pg_init_g:2120
blocked for more than 120 seconds"
Bug 200346134
Change-Id: I5270426080dcd628ccca4df798005294c19767a0
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1582593
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/pmu.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu.h b/drivers/gpu/nvgpu/include/nvgpu/pmu.h index 045bf34c..a818f3d0 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu.h | |||
@@ -421,6 +421,7 @@ int nvgpu_pmu_process_init_msg(struct nvgpu_pmu *pmu, | |||
421 | 421 | ||
422 | void nvgpu_pmu_state_change(struct gk20a *g, u32 pmu_state, | 422 | void nvgpu_pmu_state_change(struct gk20a *g, u32 pmu_state, |
423 | bool post_change_event); | 423 | bool post_change_event); |
424 | void nvgpu_kill_task_pg_init(struct gk20a *g); | ||
424 | 425 | ||
425 | /* NVGPU-PMU MEM alloc */ | 426 | /* NVGPU-PMU MEM alloc */ |
426 | void nvgpu_pmu_surface_free(struct gk20a *g, struct nvgpu_mem *mem); | 427 | void nvgpu_pmu_surface_free(struct gk20a *g, struct nvgpu_mem *mem); |