From f6587d13e4b33cd45841c42bd493faae8a7a7658 Mon Sep 17 00:00:00 2001 From: Janne Hellsten Date: Tue, 20 Jan 2015 17:21:06 +0200 Subject: gpu: nvgpu: gk20a: Add a gpfifo wait trace point Add a couple of trace points for tracking when we need to wait for space in the gpfifo ring buffer. This wait can introduce significant latencies to rendering with large gpfifo entry inputs so it's good to be able to measure how often this path is taken. Bug 1592391 Bug 1550886 Change-Id: I7f362e9c307eeffeeecaaba268ef2e3613e54597 Signed-off-by: Janne Hellsten Reviewed-on: http://git-master/r/674021 Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 2 ++ include/trace/events/gk20a.h | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index b8f769a4..ab0333d6 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 8fa8cb94..32e3100a 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), -- cgit v1.2.2