lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ