summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2018-09-04 16:38:28 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-14 18:34:03 -0400
commit356ebcef230466c05ad8e478a50271218b9a40ad (patch)
tree3c238e4a13876fd52ad0c0d7cb35ada4512990f2 /drivers/gpu/nvgpu/gk20a
parent0ece054d13a67ab01a1074bd7f06f941593251dc (diff)
gpu: nvgpu: dump falcon stats for fecs watchdog
After fecs watchdog gets triggered, system will not do anything useful as it cannot context switch. Dumping falcon stats will help debug the issue since s/w is not triggering recovery. Bug 2113657 Change-Id: I03ccd5ad7c03daac0581775dc615174cc0e77328 Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1812720 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index b94eade1..a9a87a54 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -5288,10 +5288,16 @@ int gk20a_gr_handle_fecs_error(struct gk20a *g, struct channel_gk20a *ch,
5288 gk20a_readl(g, gr_fecs_ctxsw_mailbox_r(6)), 5288 gk20a_readl(g, gr_fecs_ctxsw_mailbox_r(6)),
5289 isr_data->data_lo); 5289 isr_data->data_lo);
5290 ret = -1; 5290 ret = -1;
5291 } else if ((gr_fecs_intr &
5292 gr_fecs_host_int_status_watchdog_active_f()) != 0U) {
5293 /* currently, recovery is not initiated */
5294 nvgpu_err(g, "fecs watchdog triggered for channel %u, "
5295 "cannot ctxsw anymore !!", isr_data->chid);
5296 gk20a_fecs_dump_falcon_stats(g);
5291 } else { 5297 } else {
5292 nvgpu_err(g, 5298 nvgpu_err(g,
5293 "fecs error interrupt 0x%08x for channel %u", 5299 "fecs error interrupt 0x%08x for channel %u",
5294 gr_fecs_intr, isr_data->chid); 5300 gr_fecs_intr, isr_data->chid);
5295 } 5301 }
5296 5302
5297 gk20a_writel(g, gr_fecs_host_int_clear_r(), gr_fecs_intr); 5303 gk20a_writel(g, gr_fecs_host_int_clear_r(), gr_fecs_intr);