mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/amd/display: Add tracing to dc
[Why] Tracing is a useful and cheap debug functionality [How] This creates a new trace system amdgpu_dm, currently with three trace events amdgpu_dc_rreg and amdgpu_dc_wreg report the address and value of any dc register reads and writes amdgpu_dc_performance requires at least one of those two to be enabled. It counts the register reads and writes since the last entry v2: Don't check for NULL before kfree Signed-off-by: David Francis <David.Francis@amd.com> Reviewed-by: Harry Wentland <Harry.Wentland@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
5d66ef38bc
commit
0cf5eb76e2
@@ -31,6 +31,8 @@
|
||||
|
||||
#define __DM_SERVICES_H__
|
||||
|
||||
#include "amdgpu_dm_trace.h"
|
||||
|
||||
/* TODO: remove when DC is complete. */
|
||||
#include "dm_services_types.h"
|
||||
#include "logger_interface.h"
|
||||
@@ -70,6 +72,7 @@ static inline uint32_t dm_read_reg_func(
|
||||
}
|
||||
#endif
|
||||
value = cgs_read_register(ctx->cgs_device, address);
|
||||
trace_amdgpu_dc_rreg(&ctx->perf_trace->read_count, address, value);
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -90,6 +93,7 @@ static inline void dm_write_reg_func(
|
||||
}
|
||||
#endif
|
||||
cgs_write_register(ctx->cgs_device, address, value);
|
||||
trace_amdgpu_dc_wreg(&ctx->perf_trace->write_count, address, value);
|
||||
}
|
||||
|
||||
static inline uint32_t dm_read_index_reg(
|
||||
@@ -351,8 +355,12 @@ unsigned long long dm_get_elapse_time_in_ns(struct dc_context *ctx,
|
||||
/*
|
||||
* performance tracing
|
||||
*/
|
||||
void dm_perf_trace_timestamp(const char *func_name, unsigned int line);
|
||||
#define PERF_TRACE() dm_perf_trace_timestamp(__func__, __LINE__)
|
||||
#define PERF_TRACE() trace_amdgpu_dc_performance(CTX->perf_trace->read_count,\
|
||||
CTX->perf_trace->write_count, &CTX->perf_trace->last_entry_read,\
|
||||
&CTX->perf_trace->last_entry_write, __func__, __LINE__)
|
||||
#define PERF_TRACE_CTX(__CTX) trace_amdgpu_dc_performance(__CTX->perf_trace->read_count,\
|
||||
__CTX->perf_trace->write_count, &__CTX->perf_trace->last_entry_read,\
|
||||
&__CTX->perf_trace->last_entry_write, __func__, __LINE__)
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user