[Intel-wired-lan] [PATCH iwl-next v12 14/14] iavf: add support for Rx timestamps to hotpath
Romanowski, Rafal
rafal.romanowski at intel.com
Mon Nov 4 11:06:02 UTC 2024
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces at osuosl.org> On Behalf Of
> Mateusz Polchlopek
> Sent: Tuesday, October 22, 2024 1:41 PM
> To: intel-wired-lan at lists.osuosl.org
> Cc: netdev at vger.kernel.org; Keller, Jacob E <jacob.e.keller at intel.com>; Drewek,
> Wojciech <wojciech.drewek at intel.com>; Rahul Rameshbabu
> <rrameshbabu at nvidia.com>; Sunil Goutham <sgoutham at marvell.com>; Simon
> Horman <horms at kernel.org>; Polchlopek, Mateusz
> <mateusz.polchlopek at intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next v12 14/14] iavf: add support for Rx
> timestamps to hotpath
>
> From: Jacob Keller <jacob.e.keller at intel.com>
>
> Add support for receive timestamps to the Rx hotpath. This support only works
> when using the flexible descriptor format, so make sure that we request this
> format by default if we have receive timestamp support available in the PTP
> capabilities.
>
> In order to report the timestamps to userspace, we need to perform timestamp
> extension. The Rx descriptor does actually contain the "40 bit" timestamp.
> However, upper 32 bits which contain nanoseconds are conveniently stored
> separately in the descriptor. We could extract the 32bits and lower 8 bits, then
> perform a bitwise OR to calculate the 40bit value. This makes no sense, because
> the timestamp extension algorithm would simply discard the lower 8 bits
> anyways.
>
> Thus, implement timestamp extension as iavf_ptp_extend_32b_timestamp(), and
> extract and forward only the 32bits of nominal nanoseconds.
>
> Signed-off-by: Jacob Keller <jacob.e.keller at intel.com>
> Reviewed-by: Wojciech Drewek <wojciech.drewek at intel.com>
> Reviewed-by: Rahul Rameshbabu <rrameshbabu at nvidia.com>
> Reviewed-by: Sunil Goutham <sgoutham at marvell.com>
> Reviewed-by: Simon Horman <horms at kernel.org>
> Signed-off-by: Mateusz Polchlopek <mateusz.polchlopek at intel.com>
> ---
> drivers/net/ethernet/intel/iavf/iavf_main.c | 9 +++
> drivers/net/ethernet/intel/iavf/iavf_ptp.c | 61 +++++++++++++++++++++
> drivers/net/ethernet/intel/iavf/iavf_ptp.h | 11 ++++
> drivers/net/ethernet/intel/iavf/iavf_txrx.c | 43 +++++++++++++++
> drivers/net/ethernet/intel/iavf/iavf_type.h | 1 +
> 5 files changed, 125 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c
> b/drivers/net/ethernet/intel/iavf/iavf_main.c
> index 1103c210b4e3..a25ceecf1ea7 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_main.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
> @@ -730,6 +730,15 @@ static u8 iavf_select_rx_desc_format(const struct
Tested-by: Rafal Romanowski <rafal.romanowski at intel.com>
More information about the Intel-wired-lan
mailing list