diff options
author | seshendra Gadagottu <sgadagottu@nvidia.com> | 2017-10-05 20:36:51 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-10-23 13:46:11 -0400 |
commit | 9712b4e5acae10b599c68417bfde044895b2d33d (patch) | |
tree | 46243d4f6ef6488ae1274b83d6cb160afe316749 /drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |
parent | 1760dc8e805ca667366a0ddeca8a72dd9859d11d (diff) |
gpu: nvgpu: enhance class error debug info
Updated gk20a_gr_handle_class_error with
sub channel info, mme related info.
Also printing the correct method info from
isr_data->offset by left shifting it by 2.
Generated following hw definitions for gk20a/gm20b/gp10b/gp106
to dump relevant data in gk20a_gr_handle_class_error:
gr_trapped_addr_mme_generated_v
gr_trapped_addr_datahigh_v
gr_trapped_addr_priv_v
gr_trapped_data_lo_r
gr_trapped_data_mme_r
gr_trapped_data_mme_pc_v
Bug 2003671
Change-Id: I02e15ef16d7498b6a7dc2af547a14e84d570e8a7
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1574061
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 241e6525..d6732453 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -5202,11 +5202,24 @@ static int gk20a_gr_handle_class_error(struct gk20a *g, | |||
5202 | gr_class_error_code_v(gk20a_readl(g, gr_class_error_r())); | 5202 | gr_class_error_code_v(gk20a_readl(g, gr_class_error_r())); |
5203 | gk20a_gr_set_error_notifier(g, isr_data, | 5203 | gk20a_gr_set_error_notifier(g, isr_data, |
5204 | NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY); | 5204 | NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY); |
5205 | nvgpu_err(g, | 5205 | nvgpu_err(g, "class error 0x%08x, offset 0x%08x," |
5206 | "class error 0x%08x, offset 0x%08x," | 5206 | "sub channel 0x%08x mme generated %d," |
5207 | " unhandled intr 0x%08x for channel %u", | 5207 | " mme pc 0x%08xdata high %d priv status %d" |
5208 | isr_data->class_num, isr_data->offset, | 5208 | " unhandled intr 0x%08x for channel %u", |
5209 | gr_class_error, isr_data->chid); | 5209 | isr_data->class_num, (isr_data->offset << 2), |
5210 | gr_trapped_addr_subch_v(isr_data->addr), | ||
5211 | gr_trapped_addr_mme_generated_v(isr_data->addr), | ||
5212 | gr_trapped_data_mme_pc_v( | ||
5213 | gk20a_readl(g, gr_trapped_data_mme_r())), | ||
5214 | gr_trapped_addr_datahigh_v(isr_data->addr), | ||
5215 | gr_trapped_addr_priv_v(isr_data->addr), | ||
5216 | gr_class_error, isr_data->chid); | ||
5217 | |||
5218 | nvgpu_err(g, "trapped data low 0x%08x", | ||
5219 | gk20a_readl(g, gr_trapped_data_lo_r())); | ||
5220 | if (gr_trapped_addr_datahigh_v(isr_data->addr)) | ||
5221 | nvgpu_err(g, "trapped data high 0x%08x", | ||
5222 | gk20a_readl(g, gr_trapped_data_hi_r())); | ||
5210 | 5223 | ||
5211 | return -EINVAL; | 5224 | return -EINVAL; |
5212 | } | 5225 | } |