diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index b8f769a45..ab0333d62 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -1572,9 +1572,11 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, /* Make sure we have enough space for gpfifo entries. If not, * wait for signals from completed submits */ if (gp_free_count(c) < num_entries + extra_entries) { + trace_gk20a_gpfifo_submit_wait_for_space(c->g->dev->name); err = wait_event_interruptible(c->submit_wq, get_gp_free_count(c) >= num_entries + extra_entries || c->has_timedout); + trace_gk20a_gpfifo_submit_wait_for_space_done(c->g->dev->name); } if (c->has_timedout) { diff --git a/include/trace/events/gk20a.h b/include/trace/events/gk20a.h index 8fa8cb947..32e3100a5 100644 --- a/include/trace/events/gk20a.h +++ b/include/trace/events/gk20a.h @@ -55,6 +55,16 @@ DEFINE_EVENT(gk20a, gk20a_finalize_poweron_done, TP_ARGS(name) ); +DEFINE_EVENT(gk20a, gk20a_gpfifo_submit_wait_for_space, + TP_PROTO(const char *name), + TP_ARGS(name) +); + +DEFINE_EVENT(gk20a, gk20a_gpfifo_submit_wait_for_space_done, + TP_PROTO(const char *name), + TP_ARGS(name) +); + TRACE_EVENT(gk20a_channel_update, TP_PROTO(const void *channel), TP_ARGS(channel),