diff options
author | Seshendra Gadagottu <sgadagottu@nvidia.com> | 2015-02-23 16:42:03 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-04-04 21:57:26 -0400 |
commit | ced17a2d31a49b771b0cc9715f15330a408f8e69 (patch) | |
tree | 839b5a7f3c3b32aa3b5177cf2b21e19afc06b0fe /include/trace | |
parent | 5f6cc1289e4282ac034bd97a67a86e05b82915d0 (diff) |
gpu: nvgpu: Use busy looping for flush operations
Use busy looping for l2 tag flush and elpg flush
operations. This is making total flash time more
accurate and reduced overall time compared with
usleep. Also added trace points to measure
performance for these operations.
Also corrected timeout error check for non-silicon
platforms.
Bug 200081799
Change-Id: I63410bb7528db9258501633996fbdee5fdec1c74
Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: http://git-master/r/710472
(cherry picked from commit 18684cf9d5d6870a1a1fd5711c4fc2d733caad20)
Reviewed-on: http://git-master/r/710986
GVS: Gerrit_Virtual_Submit
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/gk20a.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/trace/events/gk20a.h b/include/trace/events/gk20a.h index 096b0559..ad738f43 100644 --- a/include/trace/events/gk20a.h +++ b/include/trace/events/gk20a.h | |||
@@ -130,6 +130,16 @@ DEFINE_EVENT(gk20a, gr_gk20a_handle_sw_method, | |||
130 | TP_ARGS(name) | 130 | TP_ARGS(name) |
131 | ); | 131 | ); |
132 | 132 | ||
133 | DEFINE_EVENT(gk20a, gk20a_mm_g_elpg_flush_locked, | ||
134 | TP_PROTO(const char *name), | ||
135 | TP_ARGS(name) | ||
136 | ); | ||
137 | |||
138 | DEFINE_EVENT(gk20a, gk20a_mm_g_elpg_flush_locked_done, | ||
139 | TP_PROTO(const char *name), | ||
140 | TP_ARGS(name) | ||
141 | ); | ||
142 | |||
133 | TRACE_EVENT(gk20a_channel_update, | 143 | TRACE_EVENT(gk20a_channel_update, |
134 | TP_PROTO(const void *channel), | 144 | TP_PROTO(const void *channel), |
135 | TP_ARGS(channel), | 145 | TP_ARGS(channel), |
@@ -368,6 +378,43 @@ TRACE_EVENT(gk20a_mmu_fault, | |||
368 | __entry->engine, __entry->client, __entry->fault_type) | 378 | __entry->engine, __entry->client, __entry->fault_type) |
369 | ); | 379 | ); |
370 | 380 | ||
381 | TRACE_EVENT(gk20a_ltc_cbc_ctrl_start, | ||
382 | TP_PROTO(const char *name, u32 cbc_ctrl, u32 min_value, | ||
383 | u32 max_value), | ||
384 | TP_ARGS(name, cbc_ctrl, min_value, max_value), | ||
385 | |||
386 | TP_STRUCT__entry( | ||
387 | __field(const char *, name) | ||
388 | __field(u32, cbc_ctrl) | ||
389 | __field(u32, min_value) | ||
390 | __field(u32, max_value) | ||
391 | ), | ||
392 | |||
393 | TP_fast_assign( | ||
394 | __entry->name = name; | ||
395 | __entry->cbc_ctrl = cbc_ctrl; | ||
396 | __entry->min_value = min_value; | ||
397 | __entry->max_value = max_value; | ||
398 | ), | ||
399 | |||
400 | TP_printk("name=%s, cbc_ctrl=%d, min_value=%u, max_value=%u", | ||
401 | __entry->name, __entry->cbc_ctrl, __entry->min_value, | ||
402 | __entry->max_value) | ||
403 | ); | ||
404 | |||
405 | TRACE_EVENT(gk20a_ltc_cbc_ctrl_done, | ||
406 | TP_PROTO(const char *name), | ||
407 | TP_ARGS(name), | ||
408 | TP_STRUCT__entry( | ||
409 | __field(const char *, name) | ||
410 | ), | ||
411 | TP_fast_assign( | ||
412 | __entry->name = name; | ||
413 | ), | ||
414 | TP_printk("name=%s ", __entry->name) | ||
415 | |||
416 | ); | ||
417 | |||
371 | DECLARE_EVENT_CLASS(gk20a_cde, | 418 | DECLARE_EVENT_CLASS(gk20a_cde, |
372 | TP_PROTO(const void *ctx), | 419 | TP_PROTO(const void *ctx), |
373 | TP_ARGS(ctx), | 420 | TP_ARGS(ctx), |