mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: add handling for ctxsw_intr0
ctxsw_intr0 is triggered by ucode even if it is not enabled by driver. Add handling for processing ctxsw_intr0. fecs mailbox(6) is used to report fecs/gpccs misc error codes. Also dump falcon stats for unhandled fecs intr. Bug 2361571 Bug 200472922 Change-Id: Iefb3c0d46ad1d08db07fd3c08cff91a77835908c Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1966984 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
48648cfc58
commit
2c379cad0f
@@ -5133,10 +5133,18 @@ int gk20a_gr_handle_fecs_error(struct gk20a *g, struct channel_gk20a *ch,
|
||||
nvgpu_err(g, "fecs watchdog triggered for channel %u, "
|
||||
"cannot ctxsw anymore !!", chid);
|
||||
g->ops.gr.dump_gr_falcon_stats(g);
|
||||
} else if ((gr_fecs_intr &
|
||||
gr_fecs_host_int_status_ctxsw_intr_f(CTXSW_INTR0)) != 0U) {
|
||||
u32 mailbox_value = gk20a_readl(g, gr_fecs_ctxsw_mailbox_r(6));
|
||||
|
||||
nvgpu_err(g, "ctxsw intr0 set by ucode, error_code: 0x%08x",
|
||||
mailbox_value);
|
||||
ret = -1;
|
||||
} else {
|
||||
nvgpu_err(g,
|
||||
"fecs error interrupt 0x%08x for channel %u",
|
||||
"unhandled fecs error interrupt 0x%08x for channel %u",
|
||||
gr_fecs_intr, chid);
|
||||
g->ops.gr.dump_gr_falcon_stats(g);
|
||||
}
|
||||
|
||||
gk20a_writel(g, gr_fecs_host_int_clear_r(), gr_fecs_intr);
|
||||
|
||||
@@ -66,6 +66,9 @@
|
||||
#define NVGPU_PREEMPTION_MODE_COMPUTE_CTA BIT32(1)
|
||||
#define NVGPU_PREEMPTION_MODE_COMPUTE_CILP BIT32(2)
|
||||
|
||||
#define CTXSW_INTR0 BIT32(0)
|
||||
#define CTXSW_INTR1 BIT32(1)
|
||||
|
||||
struct tsg_gk20a;
|
||||
struct channel_gk20a;
|
||||
struct nvgpu_warpstate;
|
||||
|
||||
@@ -1983,7 +1983,8 @@ int gr_gp10b_handle_fecs_error(struct gk20a *g,
|
||||
* INTR1 (bit 1 of the HOST_INT_STATUS_CTXSW_INTR)
|
||||
* indicates that a CILP ctxsw save has finished
|
||||
*/
|
||||
if ((gr_fecs_intr & gr_fecs_host_int_status_ctxsw_intr_f(2)) != 0U) {
|
||||
if ((gr_fecs_intr &
|
||||
gr_fecs_host_int_status_ctxsw_intr_f(CTXSW_INTR1)) != 0U) {
|
||||
nvgpu_log(g, gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr,
|
||||
"CILP: ctxsw save completed!\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user