Message ID | 20210307100251.22538-1-viacheslavo@nvidia.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F024A0564; Sun, 7 Mar 2021 11:02:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A8F2122A244; Sun, 7 Mar 2021 11:02:57 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 0A751406FF for <dev@dpdk.org>; Sun, 7 Mar 2021 11:02:54 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from viacheslavo@nvidia.com) with SMTP; 7 Mar 2021 12:02:53 +0200 Received: from nvidia.com (pegasus12.mtr.labs.mlnx [10.210.17.40]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 127A2qPH016595; Sun, 7 Mar 2021 12:02:52 +0200 From: Viacheslav Ovsiienko <viacheslavo@nvidia.com> To: dev@dpdk.org Cc: rasland@nvidia.com, matan@nvidia.com, orika@nvidia.com, thomas@monjalon.net Date: Sun, 7 Mar 2021 10:02:46 +0000 Message-Id: <20210307100251.22538-1-viacheslavo@nvidia.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH 0/5] mlx5: add timestamp format support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series | mlx5: add timestamp format support | |
Message
Slava Ovsiienko
March 7, 2021, 10:02 a.m. UTC
There are two different timestamp formats can be provided potentially by mlx5 supported hardware. The free-running format provides some opaque values captured from internal clock counter clocked by some independent oscillator. The free-running frequency is not pre-defined and should be queried from the NIC. The real-time timestamps are presented in nanoseconds and captured from the dedicated UTC counter, that can be adjusted on the fly and might be synchronized with some external master clock. Depending on the version and configuration the hardware might support either FR or RT timestamps, or both in the same time on per queue basis. Since firmware version xx.30.0256 the timestamp format can be configured via fields in the queue context at the object creation time. For the compatibility reasons the default zero value configures timestamps with free-running format. The NIC ConnectX-5 and earlier ones support the free-running format only. Since ConnectX-6 both formats might be supported and configured. The default zero value (specified in the non-defined yet timestamp format context field) causes the queue creation failure (rejected by firmware) if the NIC is configured to real-time timestamp format. Hence, it is crucial to check whether firmware/hardware supports timestamp formats and configure queues accordingly, and this patchset also must be provided for stable DPDK releases. Compatibility affected (without this patchset) summary: - ConnectX-6DX or BlueField 2 - real-time format is configured in NV settings - firmware is xx.30.0256 or higher Viacheslav Ovsiienko (5): common/mlx5: add timestamp format support to DevX net/mlx5: add timestamp format support vdpa/mlx5: add timestamp format support regex/mlx5: add timestamp format support compress/mlx5: add timestamp format support drivers/common/mlx5/mlx5_devx_cmds.c | 35 +++++++++++++++++++-- drivers/common/mlx5/mlx5_devx_cmds.h | 7 +++++ drivers/common/mlx5/mlx5_prm.h | 41 ++++++++++++++++++++++--- drivers/compress/mlx5/mlx5_compress.c | 5 +++ drivers/net/mlx5/linux/mlx5_os.c | 3 ++ drivers/net/mlx5/mlx5.h | 3 ++ drivers/net/mlx5/mlx5_devx.c | 12 +++++++- drivers/net/mlx5/mlx5_flow_age.c | 10 ++++-- drivers/net/mlx5/mlx5_txpp.c | 8 +++++ drivers/net/mlx5/windows/mlx5_os.c | 3 ++ drivers/regex/mlx5/mlx5_regex.c | 1 + drivers/regex/mlx5/mlx5_regex.h | 1 + drivers/regex/mlx5/mlx5_regex_control.c | 4 +++ drivers/vdpa/mlx5/mlx5_vdpa.c | 1 + drivers/vdpa/mlx5/mlx5_vdpa.h | 1 + drivers/vdpa/mlx5/mlx5_vdpa_event.c | 8 +++++ 16 files changed, 133 insertions(+), 10 deletions(-)
Comments
Le 07-03-21 à 11:02, Viacheslav Ovsiienko a écrit : > There are two different timestamp formats can be provided potentially > by mlx5 supported hardware. > > The free-running format provides some opaque values captured from > internal clock counter clocked by some independent oscillator. > The free-running frequency is not pre-defined and should be queried > from the NIC. How is the UTC clock kept in sync with the host? It would be interesting to mention a bit about that when you'll send the patch for the "timestamp format context field", as it's important for precise measurements. > > The real-time timestamps are presented in nanoseconds and captured from > the dedicated UTC counter, that can be adjusted on the fly and might be > synchronized with some external master clock. > > Depending on the version and configuration the hardware might support > either FR or RT timestamps, or both in the same time on per queue basis. > Since firmware version xx.30.0256 the timestamp format can be configured > via fields in the queue context at the object creation time. For the > compatibility reasons the default zero value configures timestamps with > free-running format. The NIC ConnectX-5 and earlier ones support the > free-running format only. Since ConnectX-6 both formats might be supported > and configured. The default zero value (specified in the non-defined > yet timestamp format context field) causes the queue creation > failure (rejected by firmware) if the NIC is configured to real-time timestamp > format. Hence, it is crucial to check whether firmware/hardware supports > timestamp formats and configure queues accordingly, and this patchset > also must be provided for stable DPDK releases. > > Compatibility affected (without this patchset) summary: > - ConnectX-6DX or BlueField 2 Your commit message mention CX6 but the compatibility summary CX6DX. Which one started to get support? Thanks, Tom > - real-time format is configured in NV settings > - firmware is xx.30.0256 or higher > > Viacheslav Ovsiienko (5): > common/mlx5: add timestamp format support to DevX > net/mlx5: add timestamp format support > vdpa/mlx5: add timestamp format support > regex/mlx5: add timestamp format support > compress/mlx5: add timestamp format support > > drivers/common/mlx5/mlx5_devx_cmds.c | 35 +++++++++++++++++++-- > drivers/common/mlx5/mlx5_devx_cmds.h | 7 +++++ > drivers/common/mlx5/mlx5_prm.h | 41 ++++++++++++++++++++++--- > drivers/compress/mlx5/mlx5_compress.c | 5 +++ > drivers/net/mlx5/linux/mlx5_os.c | 3 ++ > drivers/net/mlx5/mlx5.h | 3 ++ > drivers/net/mlx5/mlx5_devx.c | 12 +++++++- > drivers/net/mlx5/mlx5_flow_age.c | 10 ++++-- > drivers/net/mlx5/mlx5_txpp.c | 8 +++++ > drivers/net/mlx5/windows/mlx5_os.c | 3 ++ > drivers/regex/mlx5/mlx5_regex.c | 1 + > drivers/regex/mlx5/mlx5_regex.h | 1 + > drivers/regex/mlx5/mlx5_regex_control.c | 4 +++ > drivers/vdpa/mlx5/mlx5_vdpa.c | 1 + > drivers/vdpa/mlx5/mlx5_vdpa.h | 1 + > drivers/vdpa/mlx5/mlx5_vdpa_event.c | 8 +++++ > 16 files changed, 133 insertions(+), 10 deletions(-) >
There are two different timestamp formats can be provided potentially by mlx5 supported hardware. The free-running format provides some opaque values captured from internal clock counter clocked by some independent oscillator. The free-running frequency is not pre-defined and should be queried from the NIC. The real-time timestamps are presented in nanoseconds and captured from the dedicated UTC counter, that can be adjusted on the fly and might be synchronized with some external master clock. Depending on the version and configuration the hardware might support either FR or RT timestamps, or both in the same time on per queue basis. Since firmware version xx.30.0256 the timestamp format can be configured via fields in the queue context at the object creation time. For the compatibility reasons the default zero value configures timestamps with free-running format. The NIC ConnectX-5 and earlier ones support the free-running format only. Since ConnectX-6 both formats might be supported and configured. The default zero value (specified in the non-defined yet timestamp format context field) causes the queue creation failure (rejected by firmware) if the NIC is configured to real-time timestamp format. Hence, it is crucial to check whether firmware/hardware supports timestamp formats and configure queues accordingly, and this patchset also must be provided for stable DPDK releases. Compatibility affected (without this patchset) summary: - ConnectX-6DX or BlueField 2 - real-time format is configured in NV settings - firmware is xx.30.1000 or higher Viacheslav Ovsiienko (5): common/mlx5: add timestamp format support to DevX net/mlx5: add timestamp format support vdpa/mlx5: add timestamp format support regex/mlx5: add timestamp format support compress/mlx5: add timestamp format support drivers/common/mlx5/mlx5_devx_cmds.c | 35 ++++++++++++++-- drivers/common/mlx5/mlx5_devx_cmds.h | 7 ++++ drivers/common/mlx5/mlx5_prm.h | 55 +++++++++++++++++++++++-- drivers/compress/mlx5/mlx5_compress.c | 3 ++ drivers/net/mlx5/linux/mlx5_os.c | 3 ++ drivers/net/mlx5/mlx5.h | 3 ++ drivers/net/mlx5/mlx5_devx.c | 2 +- drivers/net/mlx5/mlx5_flow_age.c | 7 +++- drivers/net/mlx5/mlx5_txpp.c | 2 + drivers/net/mlx5/windows/mlx5_os.c | 3 ++ drivers/regex/mlx5/mlx5_regex.c | 1 + drivers/regex/mlx5/mlx5_regex.h | 1 + drivers/regex/mlx5/mlx5_regex_control.c | 1 + drivers/vdpa/mlx5/mlx5_vdpa.c | 1 + drivers/vdpa/mlx5/mlx5_vdpa.h | 1 + drivers/vdpa/mlx5/mlx5_vdpa_event.c | 2 + 16 files changed, 117 insertions(+), 10 deletions(-) -- v1: https://inbox.dpdk.org/dev/20210307100251.22538-1-viacheslavo@nvidia.com/ v2: - remove non needed settings for hairpins - the unified inline routine to set timestamp format - typos and rewording commit messages