mbox series

[v2,00/27] Add DLB V2.5

Message ID 1617132940-24800-1-git-send-email-timothy.mcdaniel@intel.com (mailing list archive)
Headers show
Series Add DLB V2.5 | expand

Message

Timothy McDaniel March 30, 2021, 7:35 p.m. UTC
This patch series adds support for DLB v2.5 to
the current DLB V2.0 PMD. The resulting PMD supports
both hardware versions.

The main differences between the DLB v2.5 and v2.0 hardware
are:
- Number of queues/ports
- DLB v2.5 uses a combined credit pool, whereas DLB v2.0
  splits credits into 2 pools, a directed credit pool and a
  load balanced credit pool.
- Different register maps, with different bit names and offsets

In order to support both hardware versions with the same PMD,
and avoid code duplication, the file dlb2_resource.c required a
complete rewrite. This required some creative staging of the changes
in order to keep the individual patches relatively small, while
also meeting the requirement that all individual patches in the set
compile cleanly.

To accomplish this, a few temporary files are used:

dlb2_hw_types_new.h
dlb2_resources_new.h
dlb2_resources_new.c

As dlb2_resources_new.c is populated with the new combined v2.0/v2.5
low level logic, the corresponding old code is removed from
dlb2_resource.c, thus allowing both the original and new code to
continue to compile and link cleanly. Once all of the code has been
migrated to the new model, the old versions of the files are removed,
and the new versions are renamed, effectively replacing the old original
files.

As you review the code, you can ignore the code deletions from
dlb2_resource.c, as that file continues to shrink as the new
corresponding logic is added to dlb2_resource_new.c.

Changes since V1
1) Simplified subject text for all patches
2) correct typos/spelling
3) remove FPGA references
4) remove stale sysconf() references
5) fixed patches that had compilation issues
6) updated release notes
7) renamed dlb device from dlb2_event to dlb_event
8) moved dlb2 directory to dlb,to match name change
9) fixed other cases where "dlb2" was being used externally

Timothy McDaniel (27):
  event/dlb2: add v2.5 probe
  event/dlb2: add v2.5 HW init
  event/dlb2: add v2.5 get_resources
  event/dlb2: add v2.5 create sched domain
  event/dlb2: add v2.5 domain reset
  event/dlb2: add V2.5 create ldb queue
  event/dlb2: add v2.5 create ldb port
  event/dlb2: add v2.5 create dir port
  event/dlb2: add v2.5 create dir queue
  event/dlb2: add v2.5 map qid
  event/dlb2: add v2.5 unmap queue
  event/dlb2: add v2.5 start domain
  event/dlb2: add v2.5 credit scheme
  event/dlb2: add v2.5 queue depth functions
  event/dlb2: add v2.5 finish map/unmap
  event/dlb2: add v2.5 sparse cq mode
  event/dlb2: add v2.5 sequence number management
  event/dlb2: consolidate resource header files into one file
  event/dlb2: delete old dlb2_resource.c file
  event/dlb2: move dlb_resource_new.c to dlb_resource.c
  event/dlb2: remove temporary file, dlb_hw_types.h
  event/dlb2: move dlb2_hw_type_new.h to dlb2_hw_types.h
  event/dlb2: delete old register map file, dlb2_regs.h
  event/dlb2: rename dlb2_regs_new.h to dlb2_regs.h
  event/dlb2: update xstats for v2.5
  doc/dlb2: update documentation for v2.5
  event/dlb2: Change device name to dlb_event

 MAINTAINERS                                   |    6 +-
 app/test/test_eventdev.c                      |    6 +-
 config/rte_config.h                           |   11 +-
 doc/api/doxy-api-index.md                     |    2 +-
 doc/api/doxy-api.conf.in                      |    2 +-
 doc/guides/eventdevs/dlb.rst                  |  390 ++
 doc/guides/eventdevs/dlb2.rst                 |   75 +-
 doc/guides/eventdevs/index.rst                |    2 +-
 doc/guides/rel_notes/release_21_05.rst        |    5 +
 drivers/event/{dlb2 => dlb}/dlb2.c            |  455 +-
 drivers/event/{dlb2 => dlb}/dlb2_iface.c      |    0
 drivers/event/{dlb2 => dlb}/dlb2_iface.h      |    0
 drivers/event/{dlb2 => dlb}/dlb2_inline_fns.h |    0
 drivers/event/{dlb2 => dlb}/dlb2_log.h        |    0
 drivers/event/{dlb2 => dlb}/dlb2_priv.h       |  163 +-
 drivers/event/{dlb2 => dlb}/dlb2_selftest.c   |    8 +-
 drivers/event/{dlb2 => dlb}/dlb2_user.h       |   27 +-
 drivers/event/{dlb2 => dlb}/dlb2_xstats.c     |   70 +-
 drivers/event/{dlb2 => dlb}/meson.build       |    4 +-
 .../{dlb2 => dlb}/pf/base/dlb2_hw_types.h     |  102 +-
 .../event/{dlb2 => dlb}/pf/base/dlb2_osdep.h  |    3 +
 .../{dlb2 => dlb}/pf/base/dlb2_osdep_bitmap.h |    0
 .../{dlb2 => dlb}/pf/base/dlb2_osdep_list.h   |    0
 .../{dlb2 => dlb}/pf/base/dlb2_osdep_types.h  |    0
 drivers/event/dlb/pf/base/dlb2_regs.h         | 4412 +++++++++++++++++
 .../{dlb2 => dlb}/pf/base/dlb2_resource.c     | 3278 ++++++------
 .../{dlb2 => dlb}/pf/base/dlb2_resource.h     |   28 +-
 drivers/event/{dlb2 => dlb}/pf/dlb2_main.c    |   37 +-
 drivers/event/{dlb2 => dlb}/pf/dlb2_main.h    |    0
 drivers/event/{dlb2 => dlb}/pf/dlb2_pf.c      |   62 +-
 .../rte_pmd_dlb2.c => dlb/rte_pmd_dlb.c}      |    6 +-
 .../rte_pmd_dlb2.h => dlb/rte_pmd_dlb.h}      |   12 +-
 drivers/event/{dlb2 => dlb}/version.map       |    2 +-
 drivers/event/dlb2/pf/base/dlb2_mbox.h        |  596 ---
 drivers/event/dlb2/pf/base/dlb2_regs.h        | 2527 ----------
 drivers/event/meson.build                     |    2 +-
 36 files changed, 7270 insertions(+), 5023 deletions(-)
 create mode 100644 doc/guides/eventdevs/dlb.rst
 rename drivers/event/{dlb2 => dlb}/dlb2.c (90%)
 rename drivers/event/{dlb2 => dlb}/dlb2_iface.c (100%)
 rename drivers/event/{dlb2 => dlb}/dlb2_iface.h (100%)
 rename drivers/event/{dlb2 => dlb}/dlb2_inline_fns.h (100%)
 rename drivers/event/{dlb2 => dlb}/dlb2_log.h (100%)
 rename drivers/event/{dlb2 => dlb}/dlb2_priv.h (79%)
 rename drivers/event/{dlb2 => dlb}/dlb2_selftest.c (99%)
 rename drivers/event/{dlb2 => dlb}/dlb2_user.h (97%)
 rename drivers/event/{dlb2 => dlb}/dlb2_xstats.c (94%)
 rename drivers/event/{dlb2 => dlb}/meson.build (89%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_hw_types.h (81%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep.h (99%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_bitmap.h (100%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_list.h (100%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_types.h (100%)
 create mode 100644 drivers/event/dlb/pf/base/dlb2_regs.h
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_resource.c (68%)
 rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_resource.h (99%)
 rename drivers/event/{dlb2 => dlb}/pf/dlb2_main.c (95%)
 rename drivers/event/{dlb2 => dlb}/pf/dlb2_main.h (100%)
 rename drivers/event/{dlb2 => dlb}/pf/dlb2_pf.c (92%)
 rename drivers/event/{dlb2/rte_pmd_dlb2.c => dlb/rte_pmd_dlb.c} (88%)
 rename drivers/event/{dlb2/rte_pmd_dlb2.h => dlb/rte_pmd_dlb.h} (88%)
 rename drivers/event/{dlb2 => dlb}/version.map (60%)
 delete mode 100644 drivers/event/dlb2/pf/base/dlb2_mbox.h
 delete mode 100644 drivers/event/dlb2/pf/base/dlb2_regs.h

Comments

Jerin Jacob April 3, 2021, 9:51 a.m. UTC | #1
On Wed, Mar 31, 2021 at 1:06 AM Timothy McDaniel
<timothy.mcdaniel@intel.com> wrote:
>
> This patch series adds support for DLB v2.5 to
> the current DLB V2.0 PMD. The resulting PMD supports
> both hardware versions.
>
> The main differences between the DLB v2.5 and v2.0 hardware
> are:
> - Number of queues/ports
> - DLB v2.5 uses a combined credit pool, whereas DLB v2.0
>   splits credits into 2 pools, a directed credit pool and a
>   load balanced credit pool.
> - Different register maps, with different bit names and offsets

Please fix the following issues

[for-main]dell[dpdk-next-eventdev] $ ./devtools/check-git-log.sh -n 27
Wrong headline format:
        event/dlb2: add v2.5 get_resources
        event/dlb2: delete old dlb2_resource.c file
        event/dlb2: move dlb_resource_new.c to dlb_resource.c
        event/dlb2: remove temporary file, dlb_hw_types.h
        event/dlb2: move dlb2_hw_type_new.h to dlb2_hw_types.h
        event/dlb2: delete old register map file, dlb2_regs.h
        event/dlb2: rename dlb2_regs_new.h to dlb2_regs.h
        event/dlb2: Change device name to dlb_event
Wrong headline uppercase:
        event/dlb2: Change device name to dlb_event

./devtools/checkpatches.sh -n 27

### event/dlb2: add v2.5 sparse cq mode

WARNING:EMAIL_SUBJECT: A patch subject line should describe the change
not the tool that found it
#4:
Subject: [PATCH] event/dlb2: add v2.5 sparse cq mode

WARNING:REPEATED_WORD: Possible repeated word: 'mode'
#6:
Update sparse cq mode mode functions for DLB v2.5, accounting for new

total: 0 errors, 2 warnings, 70 lines checked

### event/dlb2: Change device name to dlb_event

WARNING:REPEATED_WORD: Possible repeated word: 'the'
#9:
to the the directory name that contains the PMD, as well

total: 0 errors, 1 warnings, 666 lines checked

22/27 valid patches



>
> In order to support both hardware versions with the same PMD,
> and avoid code duplication, the file dlb2_resource.c required a
> complete rewrite. This required some creative staging of the changes
> in order to keep the individual patches relatively small, while
> also meeting the requirement that all individual patches in the set
> compile cleanly.
>
> To accomplish this, a few temporary files are used:
>
> dlb2_hw_types_new.h
> dlb2_resources_new.h
> dlb2_resources_new.c
>
> As dlb2_resources_new.c is populated with the new combined v2.0/v2.5
> low level logic, the corresponding old code is removed from
> dlb2_resource.c, thus allowing both the original and new code to
> continue to compile and link cleanly. Once all of the code has been
> migrated to the new model, the old versions of the files are removed,
> and the new versions are renamed, effectively replacing the old original
> files.
>
> As you review the code, you can ignore the code deletions from
> dlb2_resource.c, as that file continues to shrink as the new
> corresponding logic is added to dlb2_resource_new.c.
>
> Changes since V1
> 1) Simplified subject text for all patches
> 2) correct typos/spelling
> 3) remove FPGA references
> 4) remove stale sysconf() references
> 5) fixed patches that had compilation issues
> 6) updated release notes
> 7) renamed dlb device from dlb2_event to dlb_event
> 8) moved dlb2 directory to dlb,to match name change
> 9) fixed other cases where "dlb2" was being used externally
>
> Timothy McDaniel (27):
>   event/dlb2: add v2.5 probe
>   event/dlb2: add v2.5 HW init
>   event/dlb2: add v2.5 get_resources
>   event/dlb2: add v2.5 create sched domain
>   event/dlb2: add v2.5 domain reset
>   event/dlb2: add V2.5 create ldb queue
>   event/dlb2: add v2.5 create ldb port
>   event/dlb2: add v2.5 create dir port
>   event/dlb2: add v2.5 create dir queue
>   event/dlb2: add v2.5 map qid
>   event/dlb2: add v2.5 unmap queue
>   event/dlb2: add v2.5 start domain
>   event/dlb2: add v2.5 credit scheme
>   event/dlb2: add v2.5 queue depth functions
>   event/dlb2: add v2.5 finish map/unmap
>   event/dlb2: add v2.5 sparse cq mode
>   event/dlb2: add v2.5 sequence number management
>   event/dlb2: consolidate resource header files into one file
>   event/dlb2: delete old dlb2_resource.c file
>   event/dlb2: move dlb_resource_new.c to dlb_resource.c
>   event/dlb2: remove temporary file, dlb_hw_types.h
>   event/dlb2: move dlb2_hw_type_new.h to dlb2_hw_types.h
>   event/dlb2: delete old register map file, dlb2_regs.h
>   event/dlb2: rename dlb2_regs_new.h to dlb2_regs.h
>   event/dlb2: update xstats for v2.5
>   doc/dlb2: update documentation for v2.5
>   event/dlb2: Change device name to dlb_event
>
>  MAINTAINERS                                   |    6 +-
>  app/test/test_eventdev.c                      |    6 +-
>  config/rte_config.h                           |   11 +-
>  doc/api/doxy-api-index.md                     |    2 +-
>  doc/api/doxy-api.conf.in                      |    2 +-
>  doc/guides/eventdevs/dlb.rst                  |  390 ++
>  doc/guides/eventdevs/dlb2.rst                 |   75 +-
>  doc/guides/eventdevs/index.rst                |    2 +-
>  doc/guides/rel_notes/release_21_05.rst        |    5 +
>  drivers/event/{dlb2 => dlb}/dlb2.c            |  455 +-
>  drivers/event/{dlb2 => dlb}/dlb2_iface.c      |    0
>  drivers/event/{dlb2 => dlb}/dlb2_iface.h      |    0
>  drivers/event/{dlb2 => dlb}/dlb2_inline_fns.h |    0
>  drivers/event/{dlb2 => dlb}/dlb2_log.h        |    0
>  drivers/event/{dlb2 => dlb}/dlb2_priv.h       |  163 +-
>  drivers/event/{dlb2 => dlb}/dlb2_selftest.c   |    8 +-
>  drivers/event/{dlb2 => dlb}/dlb2_user.h       |   27 +-
>  drivers/event/{dlb2 => dlb}/dlb2_xstats.c     |   70 +-
>  drivers/event/{dlb2 => dlb}/meson.build       |    4 +-
>  .../{dlb2 => dlb}/pf/base/dlb2_hw_types.h     |  102 +-
>  .../event/{dlb2 => dlb}/pf/base/dlb2_osdep.h  |    3 +
>  .../{dlb2 => dlb}/pf/base/dlb2_osdep_bitmap.h |    0
>  .../{dlb2 => dlb}/pf/base/dlb2_osdep_list.h   |    0
>  .../{dlb2 => dlb}/pf/base/dlb2_osdep_types.h  |    0
>  drivers/event/dlb/pf/base/dlb2_regs.h         | 4412 +++++++++++++++++
>  .../{dlb2 => dlb}/pf/base/dlb2_resource.c     | 3278 ++++++------
>  .../{dlb2 => dlb}/pf/base/dlb2_resource.h     |   28 +-
>  drivers/event/{dlb2 => dlb}/pf/dlb2_main.c    |   37 +-
>  drivers/event/{dlb2 => dlb}/pf/dlb2_main.h    |    0
>  drivers/event/{dlb2 => dlb}/pf/dlb2_pf.c      |   62 +-
>  .../rte_pmd_dlb2.c => dlb/rte_pmd_dlb.c}      |    6 +-
>  .../rte_pmd_dlb2.h => dlb/rte_pmd_dlb.h}      |   12 +-
>  drivers/event/{dlb2 => dlb}/version.map       |    2 +-
>  drivers/event/dlb2/pf/base/dlb2_mbox.h        |  596 ---
>  drivers/event/dlb2/pf/base/dlb2_regs.h        | 2527 ----------
>  drivers/event/meson.build                     |    2 +-
>  36 files changed, 7270 insertions(+), 5023 deletions(-)
>  create mode 100644 doc/guides/eventdevs/dlb.rst
>  rename drivers/event/{dlb2 => dlb}/dlb2.c (90%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_iface.c (100%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_iface.h (100%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_inline_fns.h (100%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_log.h (100%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_priv.h (79%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_selftest.c (99%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_user.h (97%)
>  rename drivers/event/{dlb2 => dlb}/dlb2_xstats.c (94%)
>  rename drivers/event/{dlb2 => dlb}/meson.build (89%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_hw_types.h (81%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep.h (99%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_bitmap.h (100%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_list.h (100%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_osdep_types.h (100%)
>  create mode 100644 drivers/event/dlb/pf/base/dlb2_regs.h
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_resource.c (68%)
>  rename drivers/event/{dlb2 => dlb}/pf/base/dlb2_resource.h (99%)
>  rename drivers/event/{dlb2 => dlb}/pf/dlb2_main.c (95%)
>  rename drivers/event/{dlb2 => dlb}/pf/dlb2_main.h (100%)
>  rename drivers/event/{dlb2 => dlb}/pf/dlb2_pf.c (92%)
>  rename drivers/event/{dlb2/rte_pmd_dlb2.c => dlb/rte_pmd_dlb.c} (88%)
>  rename drivers/event/{dlb2/rte_pmd_dlb2.h => dlb/rte_pmd_dlb.h} (88%)
>  rename drivers/event/{dlb2 => dlb}/version.map (60%)
>  delete mode 100644 drivers/event/dlb2/pf/base/dlb2_mbox.h
>  delete mode 100644 drivers/event/dlb2/pf/base/dlb2_regs.h
>
> --
> 2.23.0
>