> -----Original Message-----
> From: Korba, Przemyslaw <[email protected]>
> Sent: Monday, May 11, 2026 9:37 AM
> To: [email protected]
> Cc: [email protected]; Nguyen, Anthony L
> <[email protected]>; Kitszel, Przemyslaw
> <[email protected]>; Loktionov, Aleksandr
> <[email protected]>; Kubalewski, Arkadiusz
> <[email protected]>; Korba, Przemyslaw
> <[email protected]>
> Subject: [PATCH iwl-next] ice: add rx timestamp tracepoint for
> debugging
> 
> Add ice_rx_hwtstamp trace event to help debug PTP rx timestamp issues.
> The trace captures cached_time, ts_high, and the extended ts_ns value
> in ice_ptp_get_rx_hwts().
> 
> Enable with:
> echo 1 > /sys/kernel/debug/tracing/events/ice/ice_rx_hwtstamp/enable
> cat /sys/kernel/debug/tracing/trace_pipe
> 
> Signed-off-by: Przemyslaw Korba <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice_ptp.c   |  2 ++
>  drivers/net/ethernet/intel/ice/ice_trace.h | 18 ++++++++++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c
> b/drivers/net/ethernet/intel/ice/ice_ptp.c
> index 691f05c62d4e..07e621813ff5 100644
> --- a/drivers/net/ethernet/intel/ice/ice_ptp.c
> +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
> @@ -2333,6 +2333,8 @@ u64 ice_ptp_get_rx_hwts(const union
> ice_32b_rx_flex_desc *rx_desc,
>       ts_high = le32_to_cpu(rx_desc->wb.flex_ts.ts_high);
>       ts_ns = ice_ptp_extend_32b_ts(cached_time, ts_high);
> 
> +     ice_trace(rx_hwtstamp, cached_time, ts_high, ts_ns);
> +
>       return ts_ns;
>  }
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_trace.h
> b/drivers/net/ethernet/intel/ice/ice_trace.h
> index 4f35ef8d6b29..3cb8c6ea03cf 100644
> --- a/drivers/net/ethernet/intel/ice/ice_trace.h
> +++ b/drivers/net/ethernet/intel/ice/ice_trace.h
> @@ -241,6 +241,24 @@ DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_req);
>  DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_done);
>  DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_complete);
> 
> +/* Trace event for Rx timestamp */
> +TRACE_EVENT(ice_rx_hwtstamp,
> +         TP_PROTO(u64 cached_time, u32 ts_high, u64 ts_ns),
> +
> +         TP_ARGS(cached_time, ts_high, ts_ns),
> +
> +         TP_STRUCT__entry(__field(u64, cached_time)
> +                          __field(u32, ts_high)
> +                          __field(u64, ts_ns)),
> +
> +         TP_fast_assign(__entry->cached_time = cached_time;
> +                        __entry->ts_high = ts_high;
> +                        __entry->ts_ns = ts_ns;),
> +
> +         TP_printk("cached_time=%llu ts_high=%u ts_ns=%llu",
> +                   __entry->cached_time, __entry->ts_high, __entry-
> >ts_ns) );
> +
>  DECLARE_EVENT_CLASS(ice_esw_br_fdb_template,
>                   TP_PROTO(struct ice_esw_br_fdb_entry *fdb),
>                   TP_ARGS(fdb),
> 
> base-commit: 5c0d2ac5900d689d422a31cd45073175150c0a39
> --
> 2.43.0

Reviewed-by: Aleksandr Loktionov <[email protected]>

Reply via email to