mbox series

[net-next,V3,0/3] mlx5 PTM cross timestamping support

Message ID 20240730134055.1835261-1-tariqt@nvidia.com (mailing list archive)
Headers show
Series mlx5 PTM cross timestamping support | expand

Message

Tariq Toukan July 30, 2024, 1:40 p.m. UTC
Hi,

This is V3. You can find V2 as part of a larger series here:
https://lore.kernel.org/netdev/d1dba3e1-2ecc-4fdf-a23b-7696c4bccf45@gmail.com/T/

This patchset by Rahul and Carolina adds PTM (Precision Time Measurement)
support to the mlx5 driver.

PTM is a PCI extended capability introduced by PCI-SIG for providing an
accurate read of the device clock offset without being impacted by
asymmetric bus transfer rates.

The performance of PTM on ConnectX-7 was evaluated using both real-time
(RTC) and free-running (FRC) clocks under traffic and no traffic
conditions. Tests with phc2sys measured the maximum offset values at a 50Hz
rate, with and without PTM. 

Results:

1. No traffic
+-----+--------+--------+
|     | No-PTM | PTM    |
+-----+--------+--------+
| FRC | 125 ns | <29 ns |
+-----+--------+--------+
| RTC | 248 ns | <34 ns |
+-----+--------+--------+

2. With traffic
+-----+--------+--------+
|     | No-PTM | PTM    |
+-----+--------+--------+
| FRC | 254 ns | <40 ns |
+-----+--------+--------+
| RTC | 255 ns | <45 ns |
+-----+--------+--------+


Series generated against:
commit 1722389b0d86 ("Merge tag 'net-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")

Thanks,
Tariq.

V3:
- Rebased on latest. As a result, had to replace the call to the recently
  removed function convert_art_ns_to_tsc().
- Added more CCs to the series per Jakub's feedback.
- Added perf numbers.


Carolina Jubran (1):
  net/mlx5: Add support for enabling PTM PCI capability

Rahul Rameshbabu (2):
  net/mlx5: Add support for MTPTM and MTCTR registers
  net/mlx5: Implement PTM cross timestamping support

 drivers/net/ethernet/mellanox/mlx5/core/fw.c  |  1 +
 .../ethernet/mellanox/mlx5/core/lib/clock.c   | 91 +++++++++++++++++++
 .../net/ethernet/mellanox/mlx5/core/main.c    |  6 ++
 include/linux/mlx5/device.h                   |  7 +-
 include/linux/mlx5/driver.h                   |  2 +
 include/linux/mlx5/mlx5_ifc.h                 | 43 +++++++++
 6 files changed, 149 insertions(+), 1 deletion(-)

Comments

Vadim Fedorenko July 31, 2024, 1:26 p.m. UTC | #1
On 30/07/2024 14:40, Tariq Toukan wrote:
> Hi,
> 
> This is V3. You can find V2 as part of a larger series here:
> https://lore.kernel.org/netdev/d1dba3e1-2ecc-4fdf-a23b-7696c4bccf45@gmail.com/T/
> 
> This patchset by Rahul and Carolina adds PTM (Precision Time Measurement)
> support to the mlx5 driver.
> 
> PTM is a PCI extended capability introduced by PCI-SIG for providing an
> accurate read of the device clock offset without being impacted by
> asymmetric bus transfer rates.
> 
> The performance of PTM on ConnectX-7 was evaluated using both real-time
> (RTC) and free-running (FRC) clocks under traffic and no traffic
> conditions. Tests with phc2sys measured the maximum offset values at a 50Hz
> rate, with and without PTM.
> 
> Results:
> 
> 1. No traffic
> +-----+--------+--------+
> |     | No-PTM | PTM    |
> +-----+--------+--------+
> | FRC | 125 ns | <29 ns |
> +-----+--------+--------+
> | RTC | 248 ns | <34 ns |
> +-----+--------+--------+
> 
> 2. With traffic
> +-----+--------+--------+
> |     | No-PTM | PTM    |
> +-----+--------+--------+
> | FRC | 254 ns | <40 ns |
> +-----+--------+--------+
> | RTC | 255 ns | <45 ns |
> +-----+--------+--------+
> 
> 
> Series generated against:
> commit 1722389b0d86 ("Merge tag 'net-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
> 
> Thanks,
> Tariq.
> 
> V3:
> - Rebased on latest. As a result, had to replace the call to the recently
>    removed function convert_art_ns_to_tsc().
> - Added more CCs to the series per Jakub's feedback.
> - Added perf numbers.
> 
> 
> Carolina Jubran (1):
>    net/mlx5: Add support for enabling PTM PCI capability
> 
> Rahul Rameshbabu (2):
>    net/mlx5: Add support for MTPTM and MTCTR registers
>    net/mlx5: Implement PTM cross timestamping support
> 
>   drivers/net/ethernet/mellanox/mlx5/core/fw.c  |  1 +
>   .../ethernet/mellanox/mlx5/core/lib/clock.c   | 91 +++++++++++++++++++
>   .../net/ethernet/mellanox/mlx5/core/main.c    |  6 ++
>   include/linux/mlx5/device.h                   |  7 +-
>   include/linux/mlx5/driver.h                   |  2 +
>   include/linux/mlx5/mlx5_ifc.h                 | 43 +++++++++
>   6 files changed, 149 insertions(+), 1 deletion(-)
> 

For the series:

Tested-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
patchwork-bot+netdevbpf@kernel.org Aug. 5, 2024, 11:54 p.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 30 Jul 2024 16:40:51 +0300 you wrote:
> Hi,
> 
> This is V3. You can find V2 as part of a larger series here:
> https://lore.kernel.org/netdev/d1dba3e1-2ecc-4fdf-a23b-7696c4bccf45@gmail.com/T/
> 
> This patchset by Rahul and Carolina adds PTM (Precision Time Measurement)
> support to the mlx5 driver.
> 
> [...]

Here is the summary with links:
  - [net-next,V3,1/3] net/mlx5: Add support for MTPTM and MTCTR registers
    https://git.kernel.org/netdev/net-next/c/7e45c1e9edc0
  - [net-next,V3,2/3] net/mlx5: Add support for enabling PTM PCI capability
    https://git.kernel.org/netdev/net-next/c/bec6d85d43eb
  - [net-next,V3,3/3] net/mlx5: Implement PTM cross timestamping support
    https://git.kernel.org/netdev/net-next/c/d17125fb0923

You are awesome, thank you!