On Sun, May 2, 2021 at 12:35 AM McDaniel, Timothy <timothy.mcdan...@intel.com> wrote: > > From: Timothy McDaniel <timothy.mcdan...@intel.com> > > 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
Applied the changes are some update in git comment. Also updated the release notes like below diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst index 428615e4f..58f796b7e 100644 --- a/doc/guides/rel_notes/release_21_05.rst +++ b/doc/guides/rel_notes/release_21_05.rst @@ -273,6 +273,10 @@ New Features * Added support for crypto adapter forward mode in octeontx2 event and crypto device driver. +* **Updated Intel DLB2 driver.** + + * Added support for v2.5 device. + > > 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 > > -- > 2.23.0 >