Message ID | 1619895841-7467-1-git-send-email-timothy.mcdaniel@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BA938A0546; Sat, 1 May 2021 21:05:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A841B410FB; Sat, 1 May 2021 21:05:37 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id E02464013F for <dev@dpdk.org>; Sat, 1 May 2021 21:05:33 +0200 (CEST) IronPort-SDR: EOGByCZqDst3/KAwWnZVhzng5+rQ0jGMYiwA/GWGDZv7W9uumABasFPUQuah5HIJbDhwg+c4bz cRlhPG0W4Xbw== X-IronPort-AV: E=McAfee;i="6200,9189,9971"; a="282865174" X-IronPort-AV: E=Sophos;i="5.82,266,1613462400"; d="scan'208";a="282865174" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2021 12:05:29 -0700 IronPort-SDR: V8G90UR+PlOjEsrdMdaMgKDFDQXKf2J8bMeIq+9iWEsWefD7p5jwg5eazYtG38z/3PHlSI44EJ FHxPsr2900DQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,266,1613462400"; d="scan'208";a="460766987" Received: from txasoft-yocto.an.intel.com ([10.123.72.192]) by fmsmga002.fm.intel.com with ESMTP; 01 May 2021 12:05:28 -0700 From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com> To: Cc: dev@dpdk.org, erik.g.carrillo@intel.com, harry.van.haaren@intel.com, jerinj@marvell.com, thomas@monjalon.net, Timothy McDaniel <timothy.mcdaniel@intel.com> Date: Sat, 1 May 2021 14:03:35 -0500 Message-Id: <1619895841-7467-1-git-send-email-timothy.mcdaniel@intel.com> X-Mailer: git-send-email 1.7.10 In-Reply-To: <20210316221857.2254-2-timothy.mcdaniel@intel.com> References: <20210316221857.2254-2-timothy.mcdaniel@intel.com> Subject: [dpdk-dev] [PATCH v5 00/26] Add DLB v2.5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
Add DLB v2.5
|
|
Message
Timothy McDaniel
May 1, 2021, 7:03 p.m. UTC
From: Timothy McDaniel <timothy.mcdaniel@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
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
Comments
On Sun, May 2, 2021 at 12:35 AM McDaniel, Timothy <timothy.mcdaniel@intel.com> wrote: > > From: Timothy McDaniel <timothy.mcdaniel@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 >