DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Dimon Zhao <dimon.zhao@nebula-matrix.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH v7 00/17] NBL PMD for Nebulamatrix NICs
Date: Tue, 9 Sep 2025 14:34:08 -0700	[thread overview]
Message-ID: <20250909143408.0a5cbff6@hermes.local> (raw)
In-Reply-To: <20250829032805.2955351-1-dimon.zhao@nebula-matrix.com>

On Thu, 28 Aug 2025 20:27:48 -0700
Dimon Zhao <dimon.zhao@nebula-matrix.com> wrote:

> Features:
> ---------
> - MTU update
> - promisc mode set
> - xstats
> - Basic stats 
> 
> Support NICs:
> -------------
> - S1205CQ-A00CHT
> - S1105AS-A00CHT
> - S1055AS-A00CHT
> - S1052AS-A00CHT
> - S1051AS-A00CHT
> - S1045XS-A00CHT
> - S1205CQ-A00CSP
> - S1055AS-A00CSP
> - S1052AS-A00CSP
> 
> Dimon Zhao (17):
>   net/nbl: add doc and minimum nbl build framework
>   net/nbl: add simple probe/remove and log module
>   net/nbl: add HW layer definitions and implementation
>   net/nbl: add Channel layer definitions and implementation
>   net/nbl: add Resource layer definitions and implementation
>   net/nbl: add Dispatch layer definitions and implementation
>   net/nbl: add Dev layer definitions and implementation
>   net/nbl: add complete device init and uninit functionality
>   net/nbl: add UIO and VFIO mode for nbl
>   net/nbl: add nbl coexistence mode for nbl
>   net/nbl: add nbl ethdev configuration
>   net/nbl: add nbl device rxtx queue setup and release ops
>   net/nbl: add nbl device start and stop ops
>   net/nbl: add nbl device Tx and Rx burst
>   net/nbl: add nbl ethdev infos get
>   net/nbl: add nbl device xstats and stats
>   net/nbl: nbl device support set MTU and promisc
> 
>  .mailmap                                      |    4 +
>  MAINTAINERS                                   |    9 +
>  doc/guides/nics/features/nbl.ini              |   31 +
>  doc/guides/nics/index.rst                     |    1 +
>  doc/guides/nics/nbl.rst                       |   87 ++
>  doc/guides/rel_notes/release_25_11.rst        |    4 +
>  drivers/net/meson.build                       |    1 +
>  drivers/net/nbl/meson.build                   |   26 +
>  drivers/net/nbl/nbl_common/nbl_common.c       |   47 +
>  drivers/net/nbl/nbl_common/nbl_common.h       |   10 +
>  drivers/net/nbl/nbl_common/nbl_userdev.c      |  761 ++++++++++
>  drivers/net/nbl/nbl_common/nbl_userdev.h      |   21 +
>  drivers/net/nbl/nbl_core.c                    |  105 ++
>  drivers/net/nbl/nbl_core.h                    |   98 ++
>  drivers/net/nbl/nbl_dev/nbl_dev.c             | 1041 +++++++++++++
>  drivers/net/nbl/nbl_dev/nbl_dev.h             |   89 ++
>  drivers/net/nbl/nbl_dispatch.c                | 1326 +++++++++++++++++
>  drivers/net/nbl/nbl_dispatch.h                |   31 +
>  drivers/net/nbl/nbl_ethdev.c                  |  141 ++
>  drivers/net/nbl/nbl_ethdev.h                  |   32 +
>  drivers/net/nbl/nbl_hw/nbl_channel.c          |  980 ++++++++++++
>  drivers/net/nbl/nbl_hw/nbl_channel.h          |  131 ++
>  drivers/net/nbl/nbl_hw/nbl_hw.h               |   28 +
>  .../nbl_hw/nbl_hw_leonis/nbl_hw_leonis_snic.c |  228 +++
>  .../nbl_hw/nbl_hw_leonis/nbl_hw_leonis_snic.h |   53 +
>  .../nbl/nbl_hw/nbl_hw_leonis/nbl_res_leonis.c |  253 ++++
>  .../nbl/nbl_hw/nbl_hw_leonis/nbl_res_leonis.h |   10 +
>  drivers/net/nbl/nbl_hw/nbl_resource.c         |    5 +
>  drivers/net/nbl/nbl_hw/nbl_resource.h         |  249 ++++
>  drivers/net/nbl/nbl_hw/nbl_txrx.c             |  904 +++++++++++
>  drivers/net/nbl/nbl_hw/nbl_txrx.h             |   40 +
>  drivers/net/nbl/nbl_hw/nbl_txrx_ops.h         |   91 ++
>  drivers/net/nbl/nbl_include/nbl_def_channel.h |  458 ++++++
>  drivers/net/nbl/nbl_include/nbl_def_common.h  |  120 ++
>  drivers/net/nbl/nbl_include/nbl_def_dev.h     |   26 +
>  .../net/nbl/nbl_include/nbl_def_dispatch.h    |   99 ++
>  drivers/net/nbl/nbl_include/nbl_def_hw.h      |   35 +
>  .../net/nbl/nbl_include/nbl_def_resource.h    |   91 ++
>  drivers/net/nbl/nbl_include/nbl_include.h     |  201 +++
>  drivers/net/nbl/nbl_include/nbl_logs.h        |   25 +
>  .../net/nbl/nbl_include/nbl_product_base.h    |   31 +
>  41 files changed, 7923 insertions(+)
>  create mode 100644 doc/guides/nics/features/nbl.ini
>  create mode 100644 doc/guides/nics/nbl.rst
>  create mode 100644 drivers/net/nbl/meson.build
>  create mode 100644 drivers/net/nbl/nbl_common/nbl_common.c
>  create mode 100644 drivers/net/nbl/nbl_common/nbl_common.h
>  create mode 100644 drivers/net/nbl/nbl_common/nbl_userdev.c
>  create mode 100644 drivers/net/nbl/nbl_common/nbl_userdev.h
>  create mode 100644 drivers/net/nbl/nbl_core.c
>  create mode 100644 drivers/net/nbl/nbl_core.h
>  create mode 100644 drivers/net/nbl/nbl_dev/nbl_dev.c
>  create mode 100644 drivers/net/nbl/nbl_dev/nbl_dev.h
>  create mode 100644 drivers/net/nbl/nbl_dispatch.c
>  create mode 100644 drivers/net/nbl/nbl_dispatch.h
>  create mode 100644 drivers/net/nbl/nbl_ethdev.c
>  create mode 100644 drivers/net/nbl/nbl_ethdev.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_channel.c
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_channel.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_hw.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_hw_leonis/
> 		    nbl_hw_leonis_snic.c
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_hw_leonis/
> 		    nbl_hw_leonis_snic.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_hw_leonis/nbl_res_leonis.c
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_hw_leonis/nbl_res_leonis.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_resource.c
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_resource.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_txrx.c
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_txrx.h
>  create mode 100644 drivers/net/nbl/nbl_hw/nbl_txrx_ops.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_channel.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_common.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_dev.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_dispatch.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_hw.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_def_resource.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_include.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_logs.h
>  create mode 100644 drivers/net/nbl/nbl_include/nbl_product_base.h
> 

Overall the driver looks good but needs to be updated.

Please address the following:
   1. release notes changes in main branch so patch doesn't apply cleanly
 
   2. don't use rte_memcpy(). The places you are using it memcpy() would
      be as fast and the compiler has more bounds checking with memcpy().

   3. probe function should not log at INFO level, keep it to DEBUG only.
      Same for nbl_mdev_map_device().
      A driver should print no messages on normal successful startup and
      when device is not present.

   4. The driver is mostly namespace clean, symbols are prefixed by nbl_.
      There is a global symbol dev_ops, which could conflict when linked
      statically with other code. Looks unused??

struct nbl_dev_ops dev_ops = {
};



   

      parent reply	other threads:[~2025-09-09 21:34 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-27  1:40 [PATCH v3 00/16] " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 01/16] net/nbl: add doc and minimum nbl build framework dimon.zhao
2025-06-27  1:40 ` [PATCH v3 02/16] net/nbl: add simple probe/remove and log module dimon.zhao
2025-08-20 19:51   ` Stephen Hemminger
2025-06-27  1:40 ` [PATCH v3 03/16] net/nbl: add PHY layer definitions and implementation dimon.zhao
2025-06-27  1:40 ` [PATCH v3 04/16] net/nbl: add Channel " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 05/16] net/nbl: add Resource " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 06/16] net/nbl: add Dispatch " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 07/16] net/nbl: add Dev " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 08/16] net/nbl: add complete device init and uninit functionality dimon.zhao
2025-06-27  1:40 ` [PATCH v3 09/16] net/nbl: add UIO and VFIO mode for nbl dimon.zhao
2025-06-27  1:40 ` [PATCH v3 10/16] net/nbl: add nbl coexistence " dimon.zhao
2025-06-27  1:40 ` [PATCH v3 11/16] net/nbl: add nbl ethdev configuration dimon.zhao
2025-06-27  1:40 ` [PATCH v3 12/16] net/nbl: add nbl device rxtx queue setup and release ops dimon.zhao
2025-06-27  1:40 ` [PATCH v3 13/16] net/nbl: add nbl device start and stop ops dimon.zhao
2025-06-27  1:40 ` [PATCH v3 14/16] net/nbl: add nbl device Tx and Rx burst dimon.zhao
2025-06-27  1:40 ` [PATCH v3 15/16] net/nbl: add nbl device xstats and stats dimon.zhao
2025-06-27  1:40 ` [PATCH v3 16/16] net/nbl: nbl device support set MTU and promisc dimon.zhao
2025-06-27 21:07 ` [PATCH v3 00/16] NBL PMD for Nebulamatrix NICs Stephen Hemminger
2025-06-27 21:40   ` Thomas Monjalon
2025-08-13  6:43 ` [PATCH v4 " Dimon Zhao
2025-08-13  6:43   ` [PATCH v4 01/16] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-13 14:43     ` Stephen Hemminger
2025-08-19 22:32     ` Stephen Hemminger
2025-08-13  6:43   ` [PATCH v4 02/16] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-13  6:43   ` [PATCH v4 03/16] net/nbl: add PHY layer definitions and implementation Dimon Zhao
2025-08-13  9:30     ` Ivan Malov
2025-08-13 14:19       ` Stephen Hemminger
2025-08-13  6:43   ` [PATCH v4 04/16] net/nbl: add Channel " Dimon Zhao
2025-08-13  9:54     ` Ivan Malov
2025-08-13 14:21     ` Stephen Hemminger
2025-08-13 14:22     ` Stephen Hemminger
2025-08-13 14:25     ` Stephen Hemminger
2025-08-13 14:28     ` Stephen Hemminger
2025-08-13  6:43   ` [PATCH v4 05/16] net/nbl: add Resource " Dimon Zhao
2025-08-13  6:44   ` [PATCH v4 06/16] net/nbl: add Dispatch " Dimon Zhao
2025-08-13  6:44   ` [PATCH v4 07/16] net/nbl: add Dev " Dimon Zhao
2025-08-13 10:12     ` Ivan Malov
2025-08-13  6:44   ` [PATCH v4 08/16] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-13  6:44   ` [PATCH v4 09/16] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-13  6:44   ` [PATCH v4 10/16] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-13 10:35     ` Ivan Malov
2025-08-13  6:44   ` [PATCH v4 11/16] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-13 10:40     ` Ivan Malov
2025-08-13  6:44   ` [PATCH v4 12/16] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-13 12:00     ` Ivan Malov
2025-08-15  3:47       ` 回复:[PATCH " Dimon
2025-08-15  8:00         ` Ivan Malov
2025-08-18  2:59           ` 回复:回复:[PATCH " Dimon
2025-08-13  6:44   ` [PATCH v4 13/16] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-13  6:44   ` [PATCH v4 14/16] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-13 11:31     ` Ivan Malov
2025-08-13  6:44   ` [PATCH v4 15/16] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-13 11:48     ` Ivan Malov
2025-08-13 14:27       ` Stephen Hemminger
2025-08-18 10:11       ` 回复:[PATCH " Dimon
2025-08-13  6:44   ` [PATCH v4 16/16] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-13 12:06     ` Ivan Malov
2025-08-19 10:22 ` [PATCH v5 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-19 22:05     ` Stephen Hemminger
2025-08-20 16:16     ` Stephen Hemminger
2025-08-21  3:19       ` 回复:[PATCH " Dimon
2025-08-19 10:22   ` [PATCH v5 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-19 15:30     ` Stephen Hemminger
2025-08-19 10:22   ` [PATCH v5 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-19 22:35     ` Stephen Hemminger
2025-08-19 10:22   ` [PATCH v5 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-19 10:22   ` [PATCH v5 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-22  9:03 ` [PATCH v6 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-27 16:27     ` Stephen Hemminger
2025-08-28  3:06       ` 回复:[PATCH " Dimon
2025-08-22  9:03   ` [PATCH v6 02/17] net/nbl: add simple proybe/remove and log module Dimon Zhao
2025-08-27 16:30     ` Stephen Hemminger
2025-08-22  9:03   ` [PATCH v6 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-22  9:03   ` [PATCH v6 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-29  3:27 ` [PATCH v7 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-29  3:27   ` [PATCH v7 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-29  3:28   ` [PATCH v7 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-09-09 21:34   ` Stephen Hemminger [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250909143408.0a5cbff6@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=dimon.zhao@nebula-matrix.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).