mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
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>
This commit is contained in:
committed by
Dan Willemsen
parent
5f6cc1289e
commit
ced17a2d31
@@ -130,6 +130,16 @@ DEFINE_EVENT(gk20a, gr_gk20a_handle_sw_method,
|
||||
TP_ARGS(name)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(gk20a, gk20a_mm_g_elpg_flush_locked,
|
||||
TP_PROTO(const char *name),
|
||||
TP_ARGS(name)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(gk20a, gk20a_mm_g_elpg_flush_locked_done,
|
||||
TP_PROTO(const char *name),
|
||||
TP_ARGS(name)
|
||||
);
|
||||
|
||||
TRACE_EVENT(gk20a_channel_update,
|
||||
TP_PROTO(const void *channel),
|
||||
TP_ARGS(channel),
|
||||
@@ -368,6 +378,43 @@ TRACE_EVENT(gk20a_mmu_fault,
|
||||
__entry->engine, __entry->client, __entry->fault_type)
|
||||
);
|
||||
|
||||
TRACE_EVENT(gk20a_ltc_cbc_ctrl_start,
|
||||
TP_PROTO(const char *name, u32 cbc_ctrl, u32 min_value,
|
||||
u32 max_value),
|
||||
TP_ARGS(name, cbc_ctrl, min_value, max_value),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(const char *, name)
|
||||
__field(u32, cbc_ctrl)
|
||||
__field(u32, min_value)
|
||||
__field(u32, max_value)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->name = name;
|
||||
__entry->cbc_ctrl = cbc_ctrl;
|
||||
__entry->min_value = min_value;
|
||||
__entry->max_value = max_value;
|
||||
),
|
||||
|
||||
TP_printk("name=%s, cbc_ctrl=%d, min_value=%u, max_value=%u",
|
||||
__entry->name, __entry->cbc_ctrl, __entry->min_value,
|
||||
__entry->max_value)
|
||||
);
|
||||
|
||||
TRACE_EVENT(gk20a_ltc_cbc_ctrl_done,
|
||||
TP_PROTO(const char *name),
|
||||
TP_ARGS(name),
|
||||
TP_STRUCT__entry(
|
||||
__field(const char *, name)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->name = name;
|
||||
),
|
||||
TP_printk("name=%s ", __entry->name)
|
||||
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(gk20a_cde,
|
||||
TP_PROTO(const void *ctx),
|
||||
TP_ARGS(ctx),
|
||||
|
||||
Reference in New Issue
Block a user