[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b9ed4b41-98c9-a562-ea6c-efdf3d9d3f62@intel.com>
Date: Thu, 15 Aug 2024 15:16:10 -0700
From: Tony Nguyen <anthony.l.nguyen@...el.com>
To: Mateusz Polchlopek <mateusz.polchlopek@...el.com>,
<intel-wired-lan@...ts.osuosl.org>, <aleksander.lobakin@...el.com>
CC: <netdev@...r.kernel.org>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v9 00/14] Add support for Rx
timestamping for both ice and iavf drivers
On 8/13/2024 5:54 AM, Mateusz Polchlopek wrote:
> Initially, during VF creation it registers the PTP clock in
> the system and negotiates with PF it's capabilities. In the
> meantime the PF enables the Flexible Descriptor for VF.
> Only this type of descriptor allows to receive Rx timestamps.
>
> Enabling virtual clock would be possible, though it would probably
> perform poorly due to the lack of direct time access.
>
> Enable timestamping should be done using userspace tools, e.g.
> hwstamp_ctl -i $VF -r 14
>
> In order to report the timestamps to userspace, the VF extends
> timestamp to 40b.
>
> To support this feature the flexible descriptors and PTP part
> in iavf driver have been introduced.
Can you check that each patch compiles cleanly? Some of these are not
(especially w/clang).
Also, there's some scattered checkpatch issues if you could run and
correct the applicable ones.
Thanks,
Tony
> ---
> v9:
> - another big refactor of code, again the list is too long to describe each change. Only
> patch1 and patch12 has not been changed AFAIR. Please take a look on v8 and changes
> requests from Alexander L. (in short - fixed structs paddings, aligns, optimized rx hot
> path, renamed few structs, added "const" keyword where applicable, added kdoc comments
> to newly introduced structs and defines, removed unnecessary casts, simplified few
> functions and few more).
>
> v8:
> - big refactor to make code more optimised (too many changes to list them here, please
> take a look on v7 patch9 and comments from Alexander L) - patch 11. Because of that I
> decided to remove all gathered RB tags.
> - changed newly introduced spinlock aq_cmd_lock to mutex type to avoid deadlock - patch 7
> - adjusted function iavf_is_descriptor_done() to extract fields from descriptor in a new
> way - patch 12
> - changed (and removed unused) defines that describe specific fields and bits in
> descriptor
> https://lore.kernel.org/netdev/20240730091509.18846-1-mateusz.polchlopek@intel.com/
>
> v7:
> - changed .ndo_eth_ioctl to .ndo_hwtstamp_get and .ndo_hwtstamp_set
> (according to Kuba's suggestion) - patch 11
> https://lore.kernel.org/netdev/20240604131400.13655-1-mateusz.polchlopek@intel.com/
>
> v6:
> - reordered tags
> - added RB tags where applicable
> - removed redundant instructions in ifs - patch 4 and patch 5
> - changed teardown to LIFO, adapter->ptp.initialized = false
> moved to the top of function - patch 6
> - changed cpu-endianess for testing - patch 9
> - aligned to libeth changes - patch 9
> https://lore.kernel.org/netdev/20240528112301.5374-1-mateusz.polchlopek@intel.com/
>
> v5:
> - fixed all new issues generated by this series in kernel-doc
> https://lore.kernel.org/netdev/20240418052500.50678-1-mateusz.polchlopek@intel.com/
>
> v4:
> - fixed duplicated argument in iavf_virtchnl.c reported by coccicheck
> https://lore.kernel.org/netdev/20240410121706.6223-1-mateusz.polchlopek@intel.com/
>
> v3:
> - added RB in commit 6
> - removed inline keyword in commit 9
> - fixed sparse issues in commit 9 and commit 10
> - used GENMASK_ULL when possible in commit 9
> https://lore.kernel.org/netdev/20240403131927.87021-1-mateusz.polchlopek@intel.com/
>
> v2:
> - fixed warning related to wrong specifier to dev_err_once in
> commit 7
> - fixed warnings related to unused variables in commit 9
> https://lore.kernel.org/netdev/20240327132543.15923-1-mateusz.polchlopek@intel.com/
>
> v1:
> - initial series
> https://lore.kernel.org/netdev/20240326115116.10040-1-mateusz.polchlopek@intel.com/
> ---
>
> Jacob Keller (10):
> virtchnl: add support for enabling PTP on iAVF
> virtchnl: add enumeration for the rxdid format
> iavf: add support for negotiating flexible RXDID format
> iavf: negotiate PTP capabilities
> iavf: add initial framework for registering PTP clock
> iavf: add support for indirect access to PHC time
> iavf: periodically cache PHC time
> iavf: refactor iavf_clean_rx_irq to support legacy and flex
> descriptors
> iavf: handle set and get timestamps ops
> iavf: add support for Rx timestamps to hotpath
>
> Mateusz Polchlopek (3):
> libeth: move idpf_rx_csum_decoded and idpf_rx_extracted
> iavf: define Rx descriptors as qwords
> iavf: Implement checking DD desc field
>
> Simei Su (1):
> ice: support Rx timestamp on flex descriptor
>
> drivers/net/ethernet/intel/iavf/Makefile | 2 +
> drivers/net/ethernet/intel/iavf/iavf.h | 35 +-
> drivers/net/ethernet/intel/iavf/iavf_main.c | 228 ++++++++-
> drivers/net/ethernet/intel/iavf/iavf_ptp.c | 481 ++++++++++++++++++
> drivers/net/ethernet/intel/iavf/iavf_ptp.h | 26 +
> drivers/net/ethernet/intel/iavf/iavf_trace.h | 6 +-
> drivers/net/ethernet/intel/iavf/iavf_txrx.c | 425 ++++++++++++----
> drivers/net/ethernet/intel/iavf/iavf_txrx.h | 22 +-
> drivers/net/ethernet/intel/iavf/iavf_type.h | 272 +++++-----
> drivers/net/ethernet/intel/iavf/iavf_types.h | 36 ++
> .../net/ethernet/intel/iavf/iavf_virtchnl.c | 223 ++++++++
> drivers/net/ethernet/intel/ice/ice_base.c | 3 -
> drivers/net/ethernet/intel/ice/ice_lib.c | 5 +-
> drivers/net/ethernet/intel/ice/ice_ptp.c | 4 +-
> drivers/net/ethernet/intel/ice/ice_ptp.h | 8 +
> drivers/net/ethernet/intel/ice/ice_vf_lib.h | 2 +
> drivers/net/ethernet/intel/ice/ice_virtchnl.c | 96 +++-
> drivers/net/ethernet/intel/ice/ice_virtchnl.h | 6 +
> .../intel/ice/ice_virtchnl_allowlist.c | 7 +
> .../ethernet/intel/idpf/idpf_singleq_txrx.c | 51 +-
> drivers/net/ethernet/intel/idpf/idpf_txrx.c | 16 +-
> drivers/net/ethernet/intel/idpf/idpf_txrx.h | 19 -
> include/linux/avf/virtchnl.h | 131 ++++-
> include/net/libeth/rx.h | 42 ++
> 24 files changed, 1810 insertions(+), 336 deletions(-)
> create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.c
> create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.h
> create mode 100644 drivers/net/ethernet/intel/iavf/iavf_types.h
>
>
> base-commit: d1815992133ebcc6007009645571f322f4bc7c44
Powered by blists - more mailing lists