Skip to content

Add DLB v2.5

McDaniel, Timothy dpdk-dev 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest26 patches 1 replyIn review
  2. v427 patches 2 repliesSuperseded
  3. v326 patches 14 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v227 patches9 repliesSuperseded
v125 patches12 repliesSuperseded

Changes in v5 from the cover letter

1) restore original PMD name (dlb2)
2) resore original PMD source location (drivers/event/dlb2)
3) restore documentation, such that it references dlb2_event, instead of dlb_event

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26event/dlb2: minor code cleanupdrivers/event/dlb2/pf/base/dlb2_hw_types.h drivers/event/dlb2/pf/base/dlb2_mbox.h drivers/event/dlb2/pf/base/dlb2_resource.c+2 -6410 replies
2/26event/dlb2: add v2.5 probedrivers/event/dlb2/dlb2.c drivers/event/dlb2/dlb2_priv.h drivers/event/dlb2/dlb2_xstats.c +3 more+319 -1050 replies
3/26event/dlb2: add v2.5 HW register definitionsdrivers/event/dlb2/pf/base/dlb2_regs_new.h+4304 -00 replies
4/26event/dlb2: add v2.5 HW initdrivers/event/dlb2/dlb2_priv.h drivers/event/dlb2/meson.build drivers/event/dlb2/pf/base/dlb2_hw_types_new.h +8 more+735 -2300 replies
5/26event/dlb2: add v2.5 get resourcesdrivers/event/dlb2/dlb2.c drivers/event/dlb2/dlb2_user.h drivers/event/dlb2/pf/base/dlb2_resource.c +1 more+92 -560 replies
6/26event/dlb2: add v2.5 create sched domaindrivers/event/dlb2/dlb2_user.h drivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+707 -6470 replies
7/26event/dlb2: add v2.5 domain resetdrivers/event/dlb2/pf/base/dlb2_hw_types_new.h drivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+2563 -14940 replies
8/26event/dlb2: add v2.5 create ldb queuedrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+391 -3970 replies
9/26event/dlb2: add v2.5 create ldb portdrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+471 -4900 replies
10/26event/dlb2: add v2.5 create dir portdrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+414 -4260 replies
11/26event/dlb2: add v2.5 create dir queuedrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+201 -2130 replies
12/26event/dlb2: add v2.5 map qiddrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+418 -3550 replies
13/26event/dlb2: add v2.5 unmap queuedrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+298 -3310 replies
14/26event/dlb2: add v2.5 start domaindrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+130 -1230 replies
15/26event/dlb2: add v2.5 credit schemedrivers/event/dlb2/dlb2.c+212 -990 replies
16/26event/dlb2: add v2.5 queue depth functionsdrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+135 -1600 replies
17/26event/dlb2: add v2.5 finish map/unmapdrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+50 -10540 replies
18/26event/dlb2: add v2.5 sparse cq modedrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+39 -220 replies
19/26event/dlb2: add v2.5 sequence number managementdrivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource.h drivers/event/dlb2/pf/base/dlb2_resource_new.c+107 -690 replies
20/26event/dlb2: use new implementation of resource headerdrivers/event/dlb2/pf/base/dlb2_osdep.h drivers/event/dlb2/pf/base/dlb2_resource.h drivers/event/dlb2/pf/base/dlb2_resource_new.c +3 more+39 -780 replies
21/26event/dlb2: use new implementation of resource filedrivers/event/dlb2/meson.build drivers/event/dlb2/pf/base/dlb2_resource.c drivers/event/dlb2/pf/base/dlb2_resource_new.c+6203 -62380 replies
22/26event/dlb2: use new implementation of HW types headerdrivers/event/dlb2/pf/base/dlb2_hw_types.h drivers/event/dlb2/pf/base/dlb2_hw_types_new.h drivers/event/dlb2/pf/base/dlb2_resource.c +3 more+33 -3780 replies
23/26event/dlb2: use new combined register mapdrivers/event/dlb2/pf/base/dlb2_hw_types.h drivers/event/dlb2/pf/base/dlb2_regs.h drivers/event/dlb2/pf/base/dlb2_regs_new.h +2 more+3869 -63960 replies
24/26event/dlb2: update xstats for v2.5drivers/event/dlb2/dlb2_xstats.c+37 -40 replies
25/26event/dlb2: move rte config defines to runtime devargsconfig/rte_config.h drivers/event/dlb2/dlb2.c drivers/event/dlb2/dlb2_priv.h +1 more+125 -200 replies
26/26doc/dlb2: update documentation for v2.5doc/guides/eventdevs/dlb2.rst+66 -870 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [dpdk-dev] [PATCH v5 00/26] Add DLB v2.5

From: Timothy McDaniel <[email protected]>

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 V4:
1) restore original PMD name (dlb2)
2) resore original PMD source location (drivers/event/dlb2)
3) restore documentation, such that it references dlb2_event, instead of dlb_event

Changes since V3:
1) Moved minor cleanup to its own patch. This included
a) remove FPGA references
b) eliminate duplicate macros/defines in hw_types
c) don't include dlb2_mbox.h
d) delete unused defines.macros (SMON, INT, ...)
2) Changed DLB V2.x and V2.x to simply v2.x, where v is lower case
3) Updated 20.11 release notes to remove reference to dlb2 doc, since it is now named dlb.rst
4) Updated commit message/header text, as requested

Changes since V2:
1) fix commit headers
2) fix commit message repeated words
3) remove FPGA reference
4) split out new v2.5 register definitions into separate patch
5) fixed documentation to use DLB and dlb_event exclusively, instead of the old names such as dlb1_event, dlb2_event, DLB2, ... Final doc updates are done in patch that performs device rename from DLB2 tosimply DLB
6) use component event/dlb at commit which changes device name and all subsequent commits
7) Move all DLB constants out of config/rte_config.h except QUELL_STATS, which is used in the fastpath. Exposed these as devarg command line parameters
8) Removed "TEMPORARY" comment leftover in dlb2_osdep.h
9) squashed 20-21 and 22-23 since they were logically the same as 19-20, which was requested to be squashed
10) delete old dlb2.rst - dlb.rst has been updated for v2.0 and v2.1

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 (26):
event/dlb2: minor code cleanup
event/dlb2: add v2.5 probe
event/dlb2: add v2.5 HW register definitions 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: use new implementation of resource header event/dlb2: use new implementation of resource file event/dlb2: use new implementation of HW types header event/dlb2: use new combined register map event/dlb2: update xstats for v2.5 event/dlb2: move rte config defines to runtime devargs doc/dlb2: update documentation for v2.5

 config/rte_config.h                        |    4 -
 doc/guides/eventdevs/dlb2.rst              |  153 +-
 drivers/event/dlb2/dlb2.c                  |  550 +-
 drivers/event/dlb2/dlb2_priv.h             |  170 +-
 drivers/event/dlb2/dlb2_user.h             |   27 +-
 drivers/event/dlb2/dlb2_xstats.c           |   70 +-
 drivers/event/dlb2/pf/base/dlb2_hw_types.h |  106 +-
 drivers/event/dlb2/pf/base/dlb2_mbox.h     |  596 --
 drivers/event/dlb2/pf/base/dlb2_osdep.h    |    2 +
 drivers/event/dlb2/pf/base/dlb2_regs.h     | 5955 +++++++++++++-------
 drivers/event/dlb2/pf/base/dlb2_resource.c | 3278 ++++++-----
 drivers/event/dlb2/pf/base/dlb2_resource.h |   28 +-
 drivers/event/dlb2/pf/dlb2_main.c          |   37 +-
 drivers/event/dlb2/pf/dlb2_pf.c            |   67 +-
 14 files changed, 6445 insertions(+), 4598 deletions(-)
 delete mode 100644 drivers/event/dlb2/pf/base/dlb2_mbox.h
Signature · 1 line
2.23.0