mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/8] drm/amd/display: DM trace event cleanups
@ 2026-09-24 21:10 Melissa Wen
  2026-09-24 21:10 ` [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state Melissa Wen
                   ` (7 more replies)
  0 siblings, 8 replies; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Hey,

I was tracing some amdgpu_dm events and noticed small issues and found
areas for minor improvements. So this series is just a collection of
those small cleanups.

Melissa

Melissa Wen (8):
  drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state
  drm/amd/display: remove duplicated prev_p_state_change_support assignment
  drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state
  drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class
  drm/amd/display: use right type for amdgpu_dc_performance event entries
  drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk
  drm/amd/display: copy function name into dcn_fpu trace event
  drm/amd/display: copy function name into dcn_optc_lock_unlock_state trace event

 .../amd/display/amdgpu_dm/amdgpu_dm_trace.h   | 99 +++++++++----------
 1 file changed, 45 insertions(+), 54 deletions(-)

-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25  9:45   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment Melissa Wen
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

disp_dpp_voltage_level_khz is declared and printed, but never assigned.
So when using clock tracepoint the value of this clock is just garbage.
Assign clk->disp_dpp_voltage_level_khz since this is stored in dc_clocks
as other entries.

Fixes: 13b5ca42ca9c ("drm/amd/display: Add tracepoint for capturing clocks state")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index f33a2c1e0da5..cc70aeb75798 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -513,6 +513,7 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
 	    TP_fast_assign(
 			   __entry->dispclk_khz = clk->dispclk_khz;
 			   __entry->dppclk_khz = clk->dppclk_khz;
+			   __entry->disp_dpp_voltage_level_khz = clk->disp_dpp_voltage_level_khz;
 			   __entry->dcfclk_khz = clk->dcfclk_khz;
 			   __entry->socclk_khz = clk->socclk_khz;
 			   __entry->dcfclk_deep_sleep_khz = clk->dcfclk_deep_sleep_khz;
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
  2026-09-24 21:10 ` [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25  9:45   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state Melissa Wen
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

The prev_p_state_change_support trace entry is assigned and printed
twice, remove the unnecessary duplicates.

Fixes: 13b5ca42ca9c ("drm/amd/display: Add tracepoint for capturing clocks state")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index cc70aeb75798..887ebac8c97e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -523,7 +523,6 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
 			   __entry->p_state_change_support = clk->p_state_change_support;
 			   __entry->prev_p_state_change_support = clk->prev_p_state_change_support;
 			   __entry->pwr_state = clk->pwr_state;
-			   __entry->prev_p_state_change_support = clk->prev_p_state_change_support;
 			   __entry->dtm_level = clk->dtm_level;
 			   __entry->max_supported_dppclk_khz = clk->max_supported_dppclk_khz;
 			   __entry->max_supported_dispclk_khz = clk->max_supported_dispclk_khz;
@@ -533,8 +532,8 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
 	    TP_printk("dispclk_khz=%d dppclk_khz=%d disp_dpp_voltage_level_khz=%d dcfclk_khz=%d socclk_khz=%d "
 		      "dcfclk_deep_sleep_khz=%d fclk_khz=%d phyclk_khz=%d "
 		      "dramclk_khz=%d p_state_change_support=%d "
-		      "prev_p_state_change_support=%d pwr_state=%d prev_p_state_change_support=%d "
-		      "dtm_level=%d max_supported_dppclk_khz=%d max_supported_dispclk_khz=%d "
+		      "prev_p_state_change_support=%d pwr_state=%d dtm_level=%d "
+		      "max_supported_dppclk_khz=%d max_supported_dispclk_khz=%d "
 		      "bw_dppclk_khz=%d bw_dispclk_khz=%d ",
 		      __entry->dispclk_khz,
 		      __entry->dppclk_khz,
@@ -548,7 +547,6 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
 		      __entry->p_state_change_support,
 		      __entry->prev_p_state_change_support,
 		      __entry->pwr_state,
-		      __entry->prev_p_state_change_support,
 		      __entry->dtm_level,
 		      __entry->max_supported_dppclk_khz,
 		      __entry->max_supported_dispclk_khz,
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
  2026-09-24 21:10 ` [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state Melissa Wen
  2026-09-24 21:10 ` [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25  9:47   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class Melissa Wen
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

vready_offset is captured by optc_state, but the trace point entry is
wrongly assigned to vupdate_offset. Fix vready_offset tracepoint field
in dcn_optc_lock_unloack_state to record optc_state->vready_offset.

Fixes: f1943a51f0f9 ("drm/amd/display: Add events log to trace OPTC lock and unlock")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index 887ebac8c97e..f5c2f589f691 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -701,7 +701,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
 			   __entry->vstartup_start = optc_state->vstartup_start;
 			   __entry->vupdate_offset = optc_state->vupdate_offset;
 			   __entry->vupdate_width = optc_state->vupdate_width;
-			   __entry->vready_offset = optc_state->vupdate_offset;
+			   __entry->vready_offset = optc_state->vready_offset;
 	    ),
 	    TP_printk("%s: %s()+%d: optc_instance=%d opp_count=%d max_h_total=%d max_v_total=%d "
 		      "min_h_blank=%d min_h_sync_width=%d min_v_sync_width=%d min_v_blank=%d "
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
                   ` (2 preceding siblings ...)
  2026-09-24 21:10 ` [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25  9:55   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries Melissa Wen
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Don't create an amdgpu_dm_atomic_state_template event since this is just
a template. Declare the template as an event class that will be used by
actual event tracers.

Fixes: e8a982355f96 ("drm/amd/display: Add tracepoint for amdgpu_dm")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 .../amd/display/amdgpu_dm/amdgpu_dm_trace.h   | 56 +++++++++----------
 1 file changed, 26 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index f5c2f589f691..c59ba41a9721 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -314,36 +314,32 @@ DEFINE_EVENT(amdgpu_dm_plane_state_template, amdgpu_dm_atomic_update_cursor,
 	     TP_PROTO(const struct drm_plane_state *state),
 	     TP_ARGS(state));
 
-TRACE_EVENT(amdgpu_dm_atomic_state_template,
-	    TP_PROTO(const struct drm_atomic_commit *state),
-	    TP_ARGS(state),
-
-	    TP_STRUCT__entry(
-			     __field(const struct drm_atomic_commit *, state)
-			     __field(bool, allow_modeset)
-			     __field(bool, legacy_cursor_update)
-			     __field(bool, async_update)
-			     __field(bool, duplicated)
-			     __field(int, num_connector)
-			     __field(int, num_private_objs)
-	    ),
-
-	    TP_fast_assign(
-			   __entry->state = state;
-			   __entry->allow_modeset = state->allow_modeset;
-			   __entry->legacy_cursor_update = state->legacy_cursor_update;
-			   __entry->async_update = state->async_update;
-			   __entry->duplicated = state->duplicated;
-			   __entry->num_connector = state->num_connector;
-			   __entry->num_private_objs = state->num_private_objs;
-	    ),
-
-	    TP_printk("state=%p allow_modeset=%d legacy_cursor_update=%d "
-		      "async_update=%d duplicated=%d num_connector=%d "
-		      "num_private_objs=%d",
-		      __entry->state, __entry->allow_modeset, __entry->legacy_cursor_update,
-		      __entry->async_update, __entry->duplicated, __entry->num_connector,
-		      __entry->num_private_objs)
+DECLARE_EVENT_CLASS(amdgpu_dm_atomic_state_template,
+		    TP_PROTO(const struct drm_atomic_commit *state),
+		    TP_ARGS(state),
+		    TP_STRUCT__entry(__field(const struct drm_atomic_commit *, state)
+				     __field(bool, allow_modeset)
+				     __field(bool, legacy_cursor_update)
+				     __field(bool, async_update)
+				     __field(bool, duplicated)
+				     __field(int, num_connector)
+				     __field(int, num_private_objs)
+		    ),
+		    TP_fast_assign(__entry->state = state;
+				   __entry->allow_modeset = state->allow_modeset;
+				   __entry->legacy_cursor_update = state->legacy_cursor_update;
+				   __entry->async_update = state->async_update;
+				   __entry->duplicated = state->duplicated;
+				   __entry->num_connector = state->num_connector;
+				   __entry->num_private_objs = state->num_private_objs;
+		    ),
+		    TP_printk("state=%p allow_modeset=%d legacy_cursor_update=%d "
+			      "async_update=%d duplicated=%d num_connector=%d "
+			      "num_private_objs=%d",
+			      __entry->state, __entry->allow_modeset,
+			      __entry->legacy_cursor_update, __entry->async_update,
+			      __entry->duplicated, __entry->num_connector,
+			      __entry->num_private_objs)
 );
 
 DEFINE_EVENT(amdgpu_dm_atomic_state_template, amdgpu_dm_atomic_commit_tail_begin,
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
                   ` (3 preceding siblings ...)
  2026-09-24 21:10 ` [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25 10:03   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk Melissa Wen
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Some amdgpu_dc_performance trace event params are passed as unsigned
long but stored as uint32_t, cutting them off on 64-bit. Use the right
type on entry fields and on printk use unsigned format accordingly.

Fixes: 0cf5eb76e2b4 ("drm/amd/display: Add tracing to dc")
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index c59ba41a9721..26c85d95bcc0 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -76,10 +76,10 @@ TRACE_EVENT(amdgpu_dc_performance,
 		const char *func, unsigned int line),
 	TP_ARGS(read_count, write_count, last_read, last_write, func, line),
 	TP_STRUCT__entry(
-			__field(uint32_t, reads)
-			__field(uint32_t, writes)
-			__field(uint32_t, read_delta)
-			__field(uint32_t, write_delta)
+			__field(unsigned long, reads)
+			__field(unsigned long, writes)
+			__field(unsigned long, read_delta)
+			__field(unsigned long, write_delta)
 			__string(func, func)
 			__field(uint32_t, line)
 			),
@@ -93,12 +93,9 @@ TRACE_EVENT(amdgpu_dc_performance,
 			*last_read = read_count;
 			*last_write = write_count;
 			),
-	TP_printk("%s:%d reads=%08ld (%08ld total), writes=%08ld (%08ld total)",
-			__get_str(func), __entry->line,
-			(unsigned long)__entry->read_delta,
-			(unsigned long)__entry->reads,
-			(unsigned long)__entry->write_delta,
-			(unsigned long)__entry->writes)
+	TP_printk("%s:%u reads=%08lu (%08lu total), writes=%08lu (%08lu total)",
+		  __get_str(func), __entry->line, __entry->read_delta,
+		  __entry->reads, __entry->write_delta, __entry->writes)
 );
 
 TRACE_EVENT(amdgpu_dm_connector_atomic_check,
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
                   ` (4 preceding siblings ...)
  2026-09-24 21:10 ` [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25 10:05   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event Melissa Wen
  2026-09-24 21:10 ` [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state " Melissa Wen
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Commit 0cf5eb76e2b4 ("drm/amd/display: Add tracing to dc") prints and
casts uint32_t fields in amdgpu_dc_reg_template to unsigned long
unnecessarily. Just print those fields with %08x and remove the
redundant cast.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index 26c85d95bcc0..7de4fe355c5d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -57,9 +57,8 @@ DECLARE_EVENT_CLASS(amdgpu_dc_reg_template,
 				   *count = *count + 1;
 		    ),
 
-		    TP_printk("reg=0x%08lx, value=0x%08lx",
-			      (unsigned long)__entry->reg,
-			      (unsigned long)__entry->value)
+		    TP_printk("reg=0x%08x, value=0x%08x",
+			      __entry->reg, __entry->value)
 );
 
 DEFINE_EVENT(amdgpu_dc_reg_template, amdgpu_dc_rreg,
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
                   ` (5 preceding siblings ...)
  2026-09-24 21:10 ` [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25 10:17   ` Tvrtko Ursulin
  2026-09-24 21:10 ` [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state " Melissa Wen
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Userspace trace tools that use libtraceevent to read binary buffer only
see a kernel address when printing const char *. Use string macros in
dcn_fpu to copy the function name into the trace event.

Fixes: 96ee63730fa3 ("drm/amd/display: Add control mechanism for FPU")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index 7de4fe355c5d..b2f38654e489 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -637,20 +637,20 @@ TRACE_EVENT(dcn_fpu,
 
 	    TP_STRUCT__entry(
 			     __field(bool, begin)
-			     __field(const char *, function)
+			     __string(function, function)
 			     __field(int, line)
 			     __field(int, recursion_depth)
 	    ),
 	    TP_fast_assign(
 			   __entry->begin = begin;
-			   __entry->function = function;
+			   __assign_str(function);
 			   __entry->line = line;
 			   __entry->recursion_depth = recursion_depth;
 	    ),
 	    TP_printk("%s: recursion_depth: %d: %s()+%d:",
 		      __entry->begin ? "begin" : "end",
 		      __entry->recursion_depth,
-		      __entry->function,
+		      __get_str(function),
 		      __entry->line
 	    )
 );
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state trace event
  2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
                   ` (6 preceding siblings ...)
  2026-09-24 21:10 ` [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event Melissa Wen
@ 2026-09-24 21:10 ` Melissa Wen
  2026-09-25 10:23   ` Tvrtko Ursulin
  7 siblings, 1 reply; 17+ messages in thread
From: Melissa Wen @ 2026-09-24 21:10 UTC (permalink / raw)
  To: airlied, alexander.deucher, aurabindo.pillai, Aurabindo.Pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, Harry.Wentland, kernel-dev, linux-kernel

Userspace trace tools that use libtraceevent to read binary buffer only
see a kernel address when printing const char *. Use string macros in
dcn_optc_lock_unlock_state to copy the function name into the trace
event.

Fixes: f1943a51f0f9 ("drm/amd/display: Add events log to trace OPTC lock and unlock")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
index b2f38654e489..7f05f73e5b33 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
@@ -660,7 +660,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
 	    TP_ARGS(optc_state, instance, lock, function, line),
 
 	    TP_STRUCT__entry(
-			     __field(const char *, function)
+			     __string(function, function)
 			     __field(int, instance)
 			     __field(bool, lock)
 			     __field(int, line)
@@ -678,7 +678,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
 			     __field(int, vready_offset)
 	    ),
 	    TP_fast_assign(
-			   __entry->function = function;
+			   __assign_str(function);
 			   __entry->instance = instance;
 			   __entry->lock = lock;
 			   __entry->line = line;
@@ -700,7 +700,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
 		      "min_v_blank_interlace=%d vstartup_start=%d vupdate_offset=%d vupdate_width=%d "
 		      "vready_offset=%d",
 		      __entry->lock ? "Lock" : "Unlock",
-		      __entry->function,
+		      __get_str(function),
 		      __entry->line,
 		      __entry->instance,
 		      __entry->opp_count,
-- 
2.53.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state
  2026-09-24 21:10 ` [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state Melissa Wen
@ 2026-09-25  9:45   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25  9:45 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> disp_dpp_voltage_level_khz is declared and printed, but never assigned.
> So when using clock tracepoint the value of this clock is just garbage.
> Assign clk->disp_dpp_voltage_level_khz since this is stored in dc_clocks
> as other entries.
> 
> Fixes: 13b5ca42ca9c ("drm/amd/display: Add tracepoint for capturing clocks state")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index f33a2c1e0da5..cc70aeb75798 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -513,6 +513,7 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
>   	    TP_fast_assign(
>   			   __entry->dispclk_khz = clk->dispclk_khz;
>   			   __entry->dppclk_khz = clk->dppclk_khz;
> +			   __entry->disp_dpp_voltage_level_khz = clk->disp_dpp_voltage_level_khz;
>   			   __entry->dcfclk_khz = clk->dcfclk_khz;
>   			   __entry->socclk_khz = clk->socclk_khz;
>   			   __entry->dcfclk_deep_sleep_khz = clk->dcfclk_deep_sleep_khz;

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment
  2026-09-24 21:10 ` [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment Melissa Wen
@ 2026-09-25  9:45   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25  9:45 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> The prev_p_state_change_support trace entry is assigned and printed
> twice, remove the unnecessary duplicates.
> 
> Fixes: 13b5ca42ca9c ("drm/amd/display: Add tracepoint for capturing clocks state")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index cc70aeb75798..887ebac8c97e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -523,7 +523,6 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
>   			   __entry->p_state_change_support = clk->p_state_change_support;
>   			   __entry->prev_p_state_change_support = clk->prev_p_state_change_support;
>   			   __entry->pwr_state = clk->pwr_state;
> -			   __entry->prev_p_state_change_support = clk->prev_p_state_change_support;
>   			   __entry->dtm_level = clk->dtm_level;
>   			   __entry->max_supported_dppclk_khz = clk->max_supported_dppclk_khz;
>   			   __entry->max_supported_dispclk_khz = clk->max_supported_dispclk_khz;
> @@ -533,8 +532,8 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
>   	    TP_printk("dispclk_khz=%d dppclk_khz=%d disp_dpp_voltage_level_khz=%d dcfclk_khz=%d socclk_khz=%d "
>   		      "dcfclk_deep_sleep_khz=%d fclk_khz=%d phyclk_khz=%d "
>   		      "dramclk_khz=%d p_state_change_support=%d "
> -		      "prev_p_state_change_support=%d pwr_state=%d prev_p_state_change_support=%d "
> -		      "dtm_level=%d max_supported_dppclk_khz=%d max_supported_dispclk_khz=%d "
> +		      "prev_p_state_change_support=%d pwr_state=%d dtm_level=%d "
> +		      "max_supported_dppclk_khz=%d max_supported_dispclk_khz=%d "
>   		      "bw_dppclk_khz=%d bw_dispclk_khz=%d ",
>   		      __entry->dispclk_khz,
>   		      __entry->dppclk_khz,
> @@ -548,7 +547,6 @@ TRACE_EVENT(amdgpu_dm_dc_clocks_state,
>   		      __entry->p_state_change_support,
>   		      __entry->prev_p_state_change_support,
>   		      __entry->pwr_state,
> -		      __entry->prev_p_state_change_support,
>   		      __entry->dtm_level,
>   		      __entry->max_supported_dppclk_khz,
>   		      __entry->max_supported_dispclk_khz,

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state
  2026-09-24 21:10 ` [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state Melissa Wen
@ 2026-09-25  9:47   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25  9:47 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel



On 24/09/2026 22:10, Melissa Wen wrote:
> vready_offset is captured by optc_state, but the trace point entry is
> wrongly assigned to vupdate_offset. Fix vready_offset tracepoint field
> in dcn_optc_lock_unloack_state to record optc_state->vready_offset.

unlock

> 
> Fixes: f1943a51f0f9 ("drm/amd/display: Add events log to trace OPTC lock and unlock")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index 887ebac8c97e..f5c2f589f691 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -701,7 +701,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
>   			   __entry->vstartup_start = optc_state->vstartup_start;
>   			   __entry->vupdate_offset = optc_state->vupdate_offset;
>   			   __entry->vupdate_width = optc_state->vupdate_width;
> -			   __entry->vready_offset = optc_state->vupdate_offset;
> +			   __entry->vready_offset = optc_state->vready_offset;
>   	    ),
>   	    TP_printk("%s: %s()+%d: optc_instance=%d opp_count=%d max_h_total=%d max_v_total=%d "
>   		      "min_h_blank=%d min_h_sync_width=%d min_v_sync_width=%d min_v_blank=%d "

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class
  2026-09-24 21:10 ` [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class Melissa Wen
@ 2026-09-25  9:55   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25  9:55 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> Don't create an amdgpu_dm_atomic_state_template event since this is just
> a template. Declare the template as an event class that will be used by
> actual event tracers.
> 
> Fixes: e8a982355f96 ("drm/amd/display: Add tracepoint for amdgpu_dm")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   .../amd/display/amdgpu_dm/amdgpu_dm_trace.h   | 56 +++++++++----------
>   1 file changed, 26 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index f5c2f589f691..c59ba41a9721 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -314,36 +314,32 @@ DEFINE_EVENT(amdgpu_dm_plane_state_template, amdgpu_dm_atomic_update_cursor,
>   	     TP_PROTO(const struct drm_plane_state *state),
>   	     TP_ARGS(state));
>   
> -TRACE_EVENT(amdgpu_dm_atomic_state_template,
> -	    TP_PROTO(const struct drm_atomic_commit *state),
> -	    TP_ARGS(state),
> -
> -	    TP_STRUCT__entry(
> -			     __field(const struct drm_atomic_commit *, state)
> -			     __field(bool, allow_modeset)
> -			     __field(bool, legacy_cursor_update)
> -			     __field(bool, async_update)
> -			     __field(bool, duplicated)
> -			     __field(int, num_connector)
> -			     __field(int, num_private_objs)
> -	    ),
> -
> -	    TP_fast_assign(
> -			   __entry->state = state;
> -			   __entry->allow_modeset = state->allow_modeset;
> -			   __entry->legacy_cursor_update = state->legacy_cursor_update;
> -			   __entry->async_update = state->async_update;
> -			   __entry->duplicated = state->duplicated;
> -			   __entry->num_connector = state->num_connector;
> -			   __entry->num_private_objs = state->num_private_objs;
> -	    ),
> -
> -	    TP_printk("state=%p allow_modeset=%d legacy_cursor_update=%d "
> -		      "async_update=%d duplicated=%d num_connector=%d "
> -		      "num_private_objs=%d",
> -		      __entry->state, __entry->allow_modeset, __entry->legacy_cursor_update,
> -		      __entry->async_update, __entry->duplicated, __entry->num_connector,
> -		      __entry->num_private_objs)
> +DECLARE_EVENT_CLASS(amdgpu_dm_atomic_state_template,
> +		    TP_PROTO(const struct drm_atomic_commit *state),
> +		    TP_ARGS(state),
> +		    TP_STRUCT__entry(__field(const struct drm_atomic_commit *, state)
> +				     __field(bool, allow_modeset)
> +				     __field(bool, legacy_cursor_update)
> +				     __field(bool, async_update)
> +				     __field(bool, duplicated)
> +				     __field(int, num_connector)
> +				     __field(int, num_private_objs)
> +		    ),
> +		    TP_fast_assign(__entry->state = state;
> +				   __entry->allow_modeset = state->allow_modeset;
> +				   __entry->legacy_cursor_update = state->legacy_cursor_update;
> +				   __entry->async_update = state->async_update;
> +				   __entry->duplicated = state->duplicated;
> +				   __entry->num_connector = state->num_connector;
> +				   __entry->num_private_objs = state->num_private_objs;
> +		    ),
> +		    TP_printk("state=%p allow_modeset=%d legacy_cursor_update=%d "
> +			      "async_update=%d duplicated=%d num_connector=%d "
> +			      "num_private_objs=%d",
> +			      __entry->state, __entry->allow_modeset,
> +			      __entry->legacy_cursor_update, __entry->async_update,
> +			      __entry->duplicated, __entry->num_connector,
> +			      __entry->num_private_objs)
>   );
>   
>   DEFINE_EVENT(amdgpu_dm_atomic_state_template, amdgpu_dm_atomic_commit_tail_begin,

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko

P.S. A side question - are %p useful in these tracepoints? I imagine one 
has to know the object lifetimes really well, or make sure state init 
and free are also traced to make sense of what is what.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries
  2026-09-24 21:10 ` [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries Melissa Wen
@ 2026-09-25 10:03   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25 10:03 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> Some amdgpu_dc_performance trace event params are passed as unsigned
> long but stored as uint32_t, cutting them off on 64-bit. Use the right
> type on entry fields and on printk use unsigned format accordingly.
> 
> Fixes: 0cf5eb76e2b4 ("drm/amd/display: Add tracing to dc")
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   .../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 17 +++++++----------
>   1 file changed, 7 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index c59ba41a9721..26c85d95bcc0 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -76,10 +76,10 @@ TRACE_EVENT(amdgpu_dc_performance,
>   		const char *func, unsigned int line),
>   	TP_ARGS(read_count, write_count, last_read, last_write, func, line),
>   	TP_STRUCT__entry(
> -			__field(uint32_t, reads)
> -			__field(uint32_t, writes)
> -			__field(uint32_t, read_delta)
> -			__field(uint32_t, write_delta)
> +			__field(unsigned long, reads)
> +			__field(unsigned long, writes)
> +			__field(unsigned long, read_delta)
> +			__field(unsigned long, write_delta)
>   			__string(func, func)
>   			__field(uint32_t, line)
>   			),
> @@ -93,12 +93,9 @@ TRACE_EVENT(amdgpu_dc_performance,
>   			*last_read = read_count;
>   			*last_write = write_count;
>   			),
> -	TP_printk("%s:%d reads=%08ld (%08ld total), writes=%08ld (%08ld total)",
> -			__get_str(func), __entry->line,
> -			(unsigned long)__entry->read_delta,
> -			(unsigned long)__entry->reads,
> -			(unsigned long)__entry->write_delta,
> -			(unsigned long)__entry->writes)
> +	TP_printk("%s:%u reads=%08lu (%08lu total), writes=%08lu (%08lu total)",
> +		  __get_str(func), __entry->line, __entry->read_delta,
> +		  __entry->reads, __entry->write_delta, __entry->writes)
>   );
>   
>   TRACE_EVENT(amdgpu_dm_connector_atomic_check,

8 character width might be insufficient now. I have no idea if it can 
happen in practice, probably not?

Do fields in struct dc_perf_trace need to be 64-bit wide is a related 
question?

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk
  2026-09-24 21:10 ` [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk Melissa Wen
@ 2026-09-25 10:05   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25 10:05 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> Commit 0cf5eb76e2b4 ("drm/amd/display: Add tracing to dc") prints and
> casts uint32_t fields in amdgpu_dc_reg_template to unsigned long
> unnecessarily. Just print those fields with %08x and remove the
> redundant cast.
> 
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index 26c85d95bcc0..7de4fe355c5d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -57,9 +57,8 @@ DECLARE_EVENT_CLASS(amdgpu_dc_reg_template,
>   				   *count = *count + 1;
>   		    ),
>   
> -		    TP_printk("reg=0x%08lx, value=0x%08lx",
> -			      (unsigned long)__entry->reg,
> -			      (unsigned long)__entry->value)
> +		    TP_printk("reg=0x%08x, value=0x%08x",
> +			      __entry->reg, __entry->value)
>   );
>   
>   DEFINE_EVENT(amdgpu_dc_reg_template, amdgpu_dc_rreg,

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event
  2026-09-24 21:10 ` [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event Melissa Wen
@ 2026-09-25 10:17   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25 10:17 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> Userspace trace tools that use libtraceevent to read binary buffer only
> see a kernel address when printing const char *. Use string macros in
> dcn_fpu to copy the function name into the trace event.
> 
> Fixes: 96ee63730fa3 ("drm/amd/display: Add control mechanism for FPU")
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index 7de4fe355c5d..b2f38654e489 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -637,20 +637,20 @@ TRACE_EVENT(dcn_fpu,
>   
>   	    TP_STRUCT__entry(
>   			     __field(bool, begin)
> -			     __field(const char *, function)
> +			     __string(function, function)
>   			     __field(int, line)
>   			     __field(int, recursion_depth)
>   	    ),
>   	    TP_fast_assign(
>   			   __entry->begin = begin;
> -			   __entry->function = function;
> +			   __assign_str(function);
>   			   __entry->line = line;
>   			   __entry->recursion_depth = recursion_depth;
>   	    ),
>   	    TP_printk("%s: recursion_depth: %d: %s()+%d:",
>   		      __entry->begin ? "begin" : "end",
>   		      __entry->recursion_depth,
> -		      __entry->function,
> +		      __get_str(function),
>   		      __entry->line
>   	    )
>   );

The approach taken by TRACE_DCN_FPU is a bit over the top. Macro calling 
a function, calling a macro, calling a function.

Tracepoints are supposed to be ABI (said Linus, for better or worse) and 
tying kernel function names to ABI is a bad idea. Even line numbers. All 
very questionable IMO.

But as your patch fixes an obvious fail:

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Regards,

Tvrtko




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state trace event
  2026-09-24 21:10 ` [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state " Melissa Wen
@ 2026-09-25 10:23   ` Tvrtko Ursulin
  0 siblings, 0 replies; 17+ messages in thread
From: Tvrtko Ursulin @ 2026-09-25 10:23 UTC (permalink / raw)
  To: Melissa Wen, airlied, alexander.deucher, aurabindo.pillai,
	christian.koenig, David.Francis, harry.wentland, simona,
	siqueira, sunpeng.li
  Cc: amd-gfx, kernel-dev, linux-kernel


On 24/09/2026 22:10, Melissa Wen wrote:
> Userspace trace tools that use libtraceevent to read binary buffer only
> see a kernel address when printing const char *. Use string macros in
> dcn_optc_lock_unlock_state to copy the function name into the trace
> event.
> 
> Fixes: f1943a51f0f9 ("drm/amd/display: Add events log to trace OPTC lock and unlock")
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> index b2f38654e489..7f05f73e5b33 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h
> @@ -660,7 +660,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
>   	    TP_ARGS(optc_state, instance, lock, function, line),
>   
>   	    TP_STRUCT__entry(
> -			     __field(const char *, function)
> +			     __string(function, function)
>   			     __field(int, instance)
>   			     __field(bool, lock)
>   			     __field(int, line)
> @@ -678,7 +678,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
>   			     __field(int, vready_offset)
>   	    ),
>   	    TP_fast_assign(
> -			   __entry->function = function;
> +			   __assign_str(function);
>   			   __entry->instance = instance;
>   			   __entry->lock = lock;
>   			   __entry->line = line;
> @@ -700,7 +700,7 @@ TRACE_EVENT(dcn_optc_lock_unlock_state,
>   		      "min_v_blank_interlace=%d vstartup_start=%d vupdate_offset=%d vupdate_width=%d "
>   		      "vready_offset=%d",
>   		      __entry->lock ? "Lock" : "Unlock",
> -		      __entry->function,
> +		      __get_str(function),
>   		      __entry->line,
>   		      __entry->instance,
>   		      __entry->opp_count,

Hmm this one does have the macro->function->macro->function trick unlike 
the previous patch so unless I am wrong function name and line number 
are always the same? Ie. it could be converted to two separate 
tracepoints and would just lose the (questionable) line number.

Regards,

Tvrtko


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-09-25 10:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-24 21:10 [PATCH 0/8] drm/amd/display: DM trace event cleanups Melissa Wen
2026-09-24 21:10 ` [PATCH 1/8] drm/amd/display: assign missing trace entry in amdgpu_dm_dc_clocks_state Melissa Wen
2026-09-25  9:45   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 2/8] drm/amd/display: remove duplicated prev_p_state_change_support assignment Melissa Wen
2026-09-25  9:45   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 3/8] drm/amd/display: fix vready offset assignment in dcn_optc_lock_unlock_state Melissa Wen
2026-09-25  9:47   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 4/8] drm/amd/display: declare amdgpu_dm_atomic_state_template as an event class Melissa Wen
2026-09-25  9:55   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 5/8] drm/amd/display: use right type for amdgpu_dc_performance event entries Melissa Wen
2026-09-25 10:03   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 6/8] drm/amd/display: remove redundant cast on amdgpu_dc_reg_template printk Melissa Wen
2026-09-25 10:05   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 7/8] drm/amd/display: copy function name into dcn_fpu trace event Melissa Wen
2026-09-25 10:17   ` Tvrtko Ursulin
2026-09-24 21:10 ` [PATCH 8/8] drm/amd/display: copy function name into dcn_optc_lock_unlock_state " Melissa Wen
2026-09-25 10:23   ` Tvrtko Ursulin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®