diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2012-05-28 11:56:54 +0300 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-05-29 22:39:53 -0700 |
commit | bc056c017381a85acf2d41a1e537f45e04ea297a (patch) | |
tree | e5db40625c4413c1747744ea62886f2bda414aa2 /include/trace | |
parent | b6f12a3449234f9960998954382e1a9afea7764d (diff) |
video: tegra: host: Throttle lower priority jobs
Implement per channel counter for jobs in each priority level. If
there are jobs active with higher priority than the one being
submitted, throttle.
Bug 926690
Change-Id: I5fed341e3f248325873b31d1c53bf57bf0a78074
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/104939
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/nvhost.h | 62 |
1 files changed, 58 insertions, 4 deletions
diff --git a/include/trace/events/nvhost.h b/include/trace/events/nvhost.h index b4818f55844c..6506af44e576 100644 --- a/include/trace/events/nvhost.h +++ b/include/trace/events/nvhost.h @@ -138,6 +138,52 @@ TRACE_EVENT(nvhost_channel_write_cmdbuf, __entry->words, __entry->offset) ); +TRACE_EVENT(nvhost_cdma_end, + TP_PROTO(const char *name, int prio, + int hi_count, int med_count, int low_count), + + TP_ARGS(name, prio, hi_count, med_count, low_count), + + TP_STRUCT__entry( + __field(const char *, name) + __field(int, prio) + __field(int, hi_count) + __field(int, med_count) + __field(int, low_count) + ), + + TP_fast_assign( + __entry->name = name; + __entry->prio = prio; + __entry->hi_count = hi_count; + __entry->med_count = med_count; + __entry->low_count = low_count; + ), + + TP_printk("name=%s, prio=%d, hi=%d, med=%d, low=%d", + __entry->name, __entry->prio, + __entry->hi_count, __entry->med_count, __entry->low_count) +); + +TRACE_EVENT(nvhost_cdma_flush, + TP_PROTO(const char *name, int timeout), + + TP_ARGS(name, timeout), + + TP_STRUCT__entry( + __field(const char *, name) + __field(int, timeout) + ), + + TP_fast_assign( + __entry->name = name; + __entry->timeout = timeout; + ), + + TP_printk("name=%s, timeout=%d", + __entry->name, __entry->timeout) +); + TRACE_EVENT(nvhost_cdma_push, TP_PROTO(const char *name, u32 op1, u32 op2), @@ -425,24 +471,32 @@ TRACE_EVENT(nvhost_channel_submitted, ); TRACE_EVENT(nvhost_channel_submit_complete, - TP_PROTO(const char *name, int count, u32 thresh), + TP_PROTO(const char *name, int count, u32 thresh, + int hi_count, int med_count, int low_count), - TP_ARGS(name, count, thresh), + TP_ARGS(name, count, thresh, hi_count, med_count, low_count), TP_STRUCT__entry( __field(const char *, name) __field(int, count) __field(u32, thresh) + __field(int, hi_count) + __field(int, med_count) + __field(int, low_count) ), TP_fast_assign( __entry->name = name; __entry->count = count; __entry->thresh = thresh; + __entry->hi_count = hi_count; + __entry->med_count = med_count; + __entry->low_count = low_count; ), - TP_printk("name=%s, count=%d, thresh=%d", - __entry->name, __entry->count, __entry->thresh) + TP_printk("name=%s, count=%d, thresh=%d, hi=%d, med=%d, low=%d", + __entry->name, __entry->count, __entry->thresh, + __entry->hi_count, __entry->med_count, __entry->low_count) ); TRACE_EVENT(nvhost_wait_cdma, |