DPDK patches and discussions
 help / color / mirror / Atom feed
From: Serhii Iliushyk <sil-plv@napatech.com>
To: dev@dpdk.org
Cc: mko-plv@napatech.com, sil-plv@napatech.com, ckm@napatech.com,
	stephen@networkplumber.org
Subject: [PATCH v1 00/24] Migrate threads to the DPDK service framework and refactor naming for exported symbols
Date: Wed, 24 Sep 2025 16:41:23 +0200	[thread overview]
Message-ID: <20250924144152.53203-1-sil-plv@napatech.com> (raw)
In-Reply-To: <20250908141740.1312268-2-sil-plv@napatech.com>

This modification provides better resource (CPU) management for NTNIC PMD.

The following threads are migrated:
        * FLM update thread
        * Statistic thread
        * Port event thread
        * Adapter monitoring thread
Additionally, a warning is added to inform users about the importance of
dedicating lcores to the DPDK service framework when using the NTNIC PMD.
The code is also cleaned up to use pthreads and rte_thread APIs.

After this patch series, an each application using NTNIC PMD should
dedicate at least five(5) cores for DPDK service framework to ensure
proper operation of the NTNIC PMD.

The service cores can be dedicated by EAL options:
        * s SERVICE COREMASK Hexadecimal bitmask of cores to be used as service cores
        * S SERVICE CORELIST List of cores to run services on
Or with a special API by the application itself.
        * rte_pmd_ntnic_service_set_lcore to map a service to a specific lcore
        * rte_pmd_ntnic_service_get_id to get a service ID.

This patch series also includes aligning the naming of the exported symbols to avoid
potential conflicts with other applications and libraries.
The main change is to add the prefix "nthw_".

Serhii Iliushyk (24):
  net/ntnic: introduce service API for NTNIC PMD
  net/ntnic: migrate flm update thread to service
  net/ntnic: migrate statistic thread to service
  net/ntnic: migrate port event thread to service
  net/ntnic: migrate adapter mon thread to service
  net/ntnic: add warning about service cores
  net/ntnic: avoid using thread API
  net/ntnic: fix potential format overflow
  net/ntnic: single file function as static
  net/ntnic: remove unused functions
  net/ntnic: move nthw to prefix part
  net/ntnic: change prefix hw to prefix nthw
  net/ntnic: modify prefix flow with prefix nthw
  net/ntnic: change prefix flm to prefix nthw
  net/ntnic: change prefix nt to prefix nthw
  net/ntnic: change prefix ntlog to prefix nthw
  net/ntnic: change prefix km to prefix nthw
  net/ntnic: change prefix set to prefix nthw
  net/ntnic: rename common hash and flow functions
  net/ntnic: rename register ops function
  net/ntnic: rename get ops functions
  net/ntnic: rename ops init functions
  net/ntnic: rename nim agx setup function
  net/ntnic: rename table ID functions

 doc/guides/nics/ntnic.rst                     |  112 ++
 drivers/net/ntnic/adapter/nt4ga_adapter.c     |   41 +-
 .../net/ntnic/adapter/nt4ga_stat/nt4ga_stat.c |   10 +-
 drivers/net/ntnic/dbsconfig/ntnic_dbsconfig.c |   54 +-
 .../net/ntnic/include/common_adapter_defs.h   |   15 -
 drivers/net/ntnic/include/create_elements.h   |    9 -
 drivers/net/ntnic/include/flow_api.h          |   10 +-
 drivers/net/ntnic/include/flow_api_engine.h   |   18 +-
 drivers/net/ntnic/include/hw_mod_backend.h    |  281 ++--
 drivers/net/ntnic/include/nt4ga_adapter.h     |    4 -
 drivers/net/ntnic/include/ntdrv_4ga.h         |    4 -
 drivers/net/ntnic/include/ntnic_dbs.h         |   22 +-
 drivers/net/ntnic/include/ntnic_stat.h        |    2 +-
 drivers/net/ntnic/include/ntos_drv.h          |    4 +-
 .../link_mgmt/link_100g/nt4ga_link_100g.c     |  315 ++--
 .../link_agx_100g/nt4ga_agx_link_100g.c       |  326 ++--
 drivers/net/ntnic/link_mgmt/nt4ga_link.c      |    2 +-
 drivers/net/ntnic/meson.build                 |    2 +
 drivers/net/ntnic/nim/i2c_nim.c               |   10 +-
 drivers/net/ntnic/nim/i2c_nim.h               |    2 +-
 .../net/ntnic/nthw/core/include/nthw_fpga.h   |   14 +-
 .../net/ntnic/nthw/core/include/nthw_hif.h    |   12 -
 .../net/ntnic/nthw/core/include/nthw_iic.h    |    9 -
 .../ntnic/nthw/core/include/nthw_mac_pcs.h    |    9 -
 .../net/ntnic/nthw/core/include/nthw_pcie3.h  |   13 -
 .../nthw/core/include/nthw_pcm_nt400dxx.h     |    1 -
 .../ntnic/nthw/core/include/nthw_phy_tile.h   |    2 -
 .../net/ntnic/nthw/core/include/nthw_rpf.h    |    2 -
 .../net/ntnic/nthw/core/include/nthw_si5340.h |    2 -
 .../clock_profiles/nthw_fpga_clk9563.c        |    4 +-
 .../nthw/core/nt200a0x/nthw_fpga_nt200a0x.c   |    8 +-
 .../core/nt200a0x/reset/nthw_fpga_rst9563.c   |    8 +-
 .../nt200a0x/reset/nthw_fpga_rst_nt200a0x.c   |    6 +-
 .../nthw/core/nt400dxx/nthw_fpga_nt400dxx.c   |    8 +-
 .../core/nt400dxx/reset/nthw_fpga_rst9574.c   |   22 +-
 .../nt400dxx/reset/nthw_fpga_rst_nt400dxx.c   |   36 +-
 drivers/net/ntnic/nthw/core/nthw_fpga.c       |   22 +-
 drivers/net/ntnic/nthw/core/nthw_hif.c        |   90 --
 drivers/net/ntnic/nthw/core/nthw_i2cm.c       |    4 +-
 drivers/net/ntnic/nthw/core/nthw_igam.c       |    4 +-
 drivers/net/ntnic/nthw/core/nthw_iic.c        |  240 +--
 drivers/net/ntnic/nthw/core/nthw_mac_pcs.c    |   67 +-
 drivers/net/ntnic/nthw/core/nthw_pca9532.c    |    2 -
 drivers/net/ntnic/nthw/core/nthw_pcal6416a.c  |    1 -
 drivers/net/ntnic/nthw/core/nthw_pcie3.c      |   86 --
 .../net/ntnic/nthw/core/nthw_pcm_nt400dxx.c   |    5 -
 drivers/net/ntnic/nthw/core/nthw_phy_tile.c   |   51 +-
 drivers/net/ntnic/nthw/core/nthw_rpf.c        |   14 -
 .../net/ntnic/nthw/core/nthw_si5332_si5156.c  |    3 +-
 drivers/net/ntnic/nthw/core/nthw_si5340.c     |    6 +-
 drivers/net/ntnic/nthw/core/nthw_spi_v3.c     |   12 +-
 drivers/net/ntnic/nthw/dbs/nthw_dbs.c         |   22 +-
 drivers/net/ntnic/nthw/flow_api/flow_api.c    |  253 ++--
 .../nthw/flow_api/flow_backend/flow_backend.c | 1342 ++++++++---------
 drivers/net/ntnic/nthw/flow_api/flow_filter.c |    4 +-
 .../net/ntnic/nthw/flow_api/flow_hsh_cfg.c    |   46 +-
 .../net/ntnic/nthw/flow_api/flow_hsh_cfg.h    |    2 +-
 .../net/ntnic/nthw/flow_api/flow_id_table.c   |   10 +-
 .../net/ntnic/nthw/flow_api/flow_id_table.h   |   10 +-
 drivers/net/ntnic/nthw/flow_api/flow_kcc.c    |    2 +-
 drivers/net/ntnic/nthw/flow_api/flow_km.c     |  134 +-
 .../nthw/flow_api/hw_mod/hw_mod_backend.c     |   18 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_cat.c   |  356 ++---
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_flm.c   |   70 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_hsh.c   |   14 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_km.c    |  107 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_pdb.c   |   40 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_qsl.c   |   32 +-
 .../nthw/flow_api/hw_mod/hw_mod_slc_lr.c      |   14 +-
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_tpe.c   |   80 +-
 .../flow_api/profile_inline/flm_age_queue.c   |   22 +-
 .../flow_api/profile_inline/flm_age_queue.h   |   20 +-
 .../flow_api/profile_inline/flm_lrn_queue.c   |   12 +-
 .../flow_api/profile_inline/flm_lrn_queue.h   |   12 +-
 .../profile_inline/flow_api_hw_db_inline.c    | 1138 +++++++-------
 .../profile_inline/flow_api_hw_db_inline.h    |   99 +-
 .../profile_inline/flow_api_profile_inline.c  |  598 ++++----
 .../profile_inline/flow_api_profile_inline.h  |   49 +-
 .../ntnic/nthw/flow_filter/flow_nthw_cat.c    |  230 +--
 .../ntnic/nthw/flow_filter/flow_nthw_cat.h    |  230 +--
 .../ntnic/nthw/flow_filter/flow_nthw_csu.c    |   22 +-
 .../ntnic/nthw/flow_filter/flow_nthw_csu.h    |   24 +-
 .../ntnic/nthw/flow_filter/flow_nthw_flm.c    |  278 ++--
 .../ntnic/nthw/flow_filter/flow_nthw_flm.h    |  278 ++--
 .../ntnic/nthw/flow_filter/flow_nthw_hfu.c    |   58 +-
 .../ntnic/nthw/flow_filter/flow_nthw_hfu.h    |   58 +-
 .../ntnic/nthw/flow_filter/flow_nthw_hsh.c    |   60 +-
 .../ntnic/nthw/flow_filter/flow_nthw_hsh.h    |   60 +-
 .../ntnic/nthw/flow_filter/flow_nthw_ifr.c    |   30 +-
 .../ntnic/nthw/flow_filter/flow_nthw_ifr.h    |   30 +-
 .../ntnic/nthw/flow_filter/flow_nthw_info.c   |   88 +-
 .../ntnic/nthw/flow_filter/flow_nthw_info.h   |   88 +-
 .../net/ntnic/nthw/flow_filter/flow_nthw_km.c |  160 +-
 .../net/ntnic/nthw/flow_filter/flow_nthw_km.h |  162 +-
 .../ntnic/nthw/flow_filter/flow_nthw_pdb.c    |   54 +-
 .../ntnic/nthw/flow_filter/flow_nthw_pdb.h    |   56 +-
 .../ntnic/nthw/flow_filter/flow_nthw_qsl.c    |   68 +-
 .../ntnic/nthw/flow_filter/flow_nthw_qsl.h    |   68 +-
 .../ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c |   32 +-
 .../ntnic/nthw/flow_filter/flow_nthw_rpp_lr.h |   32 +-
 .../ntnic/nthw/flow_filter/flow_nthw_slc_lr.c |   28 +-
 .../ntnic/nthw/flow_filter/flow_nthw_slc_lr.h |   28 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c |   22 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_cpy.h |   22 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_ins.c |   20 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_ins.h |   20 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c |   42 +-
 .../ntnic/nthw/flow_filter/flow_nthw_tx_rpl.h |   46 +-
 .../net/ntnic/nthw/model/nthw_fpga_model.c    |  577 +++----
 .../net/ntnic/nthw/model/nthw_fpga_model.h    |   28 -
 drivers/net/ntnic/nthw/nthw_platform.c        |    2 +-
 drivers/net/ntnic/nthw/nthw_platform_drv.h    |    2 +-
 drivers/net/ntnic/nthw/nthw_rac.c             |   28 +-
 .../net/ntnic/nthw/ntnic_meter/ntnic_meter.c  |   20 +-
 .../nthw/supported/nthw_fpga_mod_str_map.c    |    2 +-
 .../nthw/supported/nthw_fpga_mod_str_map.h    |    2 +-
 drivers/net/ntnic/ntlog/ntlog.c               |    6 +-
 drivers/net/ntnic/ntlog/ntlog.h               |    6 +-
 drivers/net/ntnic/ntnic_ethdev.c              |  617 ++++----
 drivers/net/ntnic/ntnic_filter/ntnic_filter.c |   66 +-
 drivers/net/ntnic/ntnic_mod_reg.c             |   96 +-
 drivers/net/ntnic/ntnic_mod_reg.h             |  142 +-
 drivers/net/ntnic/ntnic_vfio.c                |   18 +-
 drivers/net/ntnic/ntnic_vfio.h                |   12 +-
 drivers/net/ntnic/ntnic_xstats/ntnic_xstats.c |    4 +-
 drivers/net/ntnic/ntutil/nt_service.c         |  127 ++
 drivers/net/ntnic/ntutil/nt_service.h         |   62 +
 drivers/net/ntnic/ntutil/nt_util.c            |   75 +-
 drivers/net/ntnic/ntutil/nt_util.h            |   21 +-
 drivers/net/ntnic/rte_pmd_ntnic.c             |  104 ++
 drivers/net/ntnic/rte_pmd_ntnic.h             |   26 +
 131 files changed, 5500 insertions(+), 5449 deletions(-)
 delete mode 100644 drivers/net/ntnic/include/common_adapter_defs.h
 create mode 100644 drivers/net/ntnic/ntutil/nt_service.c
 create mode 100644 drivers/net/ntnic/ntutil/nt_service.h
 create mode 100644 drivers/net/ntnic/rte_pmd_ntnic.c

-- 
2.45.0


  parent reply	other threads:[~2025-09-24 14:42 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-08 11:04 [PATCH v1 0/7] migrate threads to DPDK service framework Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 1/7] net/ntnic: introduce service API for NTNIC PMD Serhii Iliushyk
2025-09-24 20:27   ` Stephen Hemminger
2025-09-08 11:04 ` [PATCH v1 2/7] net/ntnic: migrate flm update thread to service Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 3/7] net/ntnic: migrate statistic " Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 4/7] net/ntnic: migrate port event " Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 5/7] net/ntnic: migrate adapter mon " Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 6/7] net/ntnic: add warning about service cores Serhii Iliushyk
2025-09-08 11:04 ` [PATCH v1 7/7] net/ntnic: cleanup using pthreads and rte_thread Serhii Iliushyk
2025-09-08 14:17   ` [PATCH v2 0/7] migrate threads to DPDK service framework Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 1/7] net/ntnic: introduce service API for NTNIC PMD Serhii Iliushyk
2025-09-13 16:23       ` Stephen Hemminger
2025-09-15 10:10         ` Serhii Iliushyk
2025-09-15 15:46       ` Stephen Hemminger
2025-09-24 14:41       ` Serhii Iliushyk [this message]
2025-09-24 14:41         ` [PATCH v1 01/24] " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 02/24] net/ntnic: migrate flm update thread to service Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 03/24] net/ntnic: migrate statistic " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 04/24] net/ntnic: migrate port event " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 05/24] net/ntnic: migrate adapter mon " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 06/24] net/ntnic: add warning about service cores Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 07/24] net/ntnic: avoid using thread API Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 08/24] net/ntnic: fix potential format overflow Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 09/24] net/ntnic: single file function as static Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 10/24] net/ntnic: remove unused functions Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 11/24] net/ntnic: move nthw to prefix part Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 12/24] net/ntnic: change prefix hw to prefix nthw Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 13/24] net/ntnic: modify prefix flow with " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 14/24] net/ntnic: change prefix flm to " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 15/24] net/ntnic: change prefix nt " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 16/24] net/ntnic: change prefix ntlog " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 17/24] net/ntnic: change prefix km " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 18/24] net/ntnic: change prefix set " Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 19/24] net/ntnic: rename common hash and flow functions Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 20/24] net/ntnic: rename register ops function Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 21/24] net/ntnic: rename get ops functions Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 22/24] net/ntnic: rename ops init functions Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 23/24] net/ntnic: rename nim agx setup function Serhii Iliushyk
2025-09-24 14:41         ` [PATCH v1 24/24] net/ntnic: rename table ID functions Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 2/7] net/ntnic: migrate flm update thread to service Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 3/7] net/ntnic: migrate statistic " Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 4/7] net/ntnic: migrate port event " Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 5/7] net/ntnic: migrate adapter mon " Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 6/7] net/ntnic: add warning about service cores Serhii Iliushyk
2025-09-08 14:17     ` [PATCH v2 7/7] net/ntnic: cleanup using pthreads and rte_thread Serhii Iliushyk
2025-09-23 14:47     ` [PATCH v2 0/7] migrate threads to DPDK service framework Stephen Hemminger
2025-09-08 20:08 ` [PATCH v1 " Stephen Hemminger
2025-09-10 12:13   ` Serhii Iliushyk

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=20250924144152.53203-1-sil-plv@napatech.com \
    --to=sil-plv@napatech.com \
    --cc=ckm@napatech.com \
    --cc=dev@dpdk.org \
    --cc=mko-plv@napatech.com \
    --cc=stephen@networkplumber.org \
    /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).