From patchwork Tue Mar 30 19:35:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timothy McDaniel X-Patchwork-Id: 90117 Return-Path: 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 A9EA5A034F; Tue, 30 Mar 2021 21:36:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 10D4D140E89; Tue, 30 Mar 2021 21:36:44 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 9D6D9140E15 for ; Tue, 30 Mar 2021 21:36:38 +0200 (CEST) IronPort-SDR: MXYnqMNhbcRHT0kTi1JM9GkOSYrfr8anwpRQQ0SnSQzfMyewjdzPzVjBEWuhyiHtdwlH0eiW40 Tgza9PpnnUtQ== X-IronPort-AV: E=McAfee;i="6000,8403,9939"; a="189601121" X-IronPort-AV: E=Sophos;i="5.81,291,1610438400"; d="scan'208";a="189601121" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Mar 2021 12:36:35 -0700 IronPort-SDR: SKt+peqhm2s4F3uxFm+tvK9//0fwCZQhfwoYhUnQByLO9qytVQGOGSJmfJ0B3YRg0vkDDmyCMr qHV75iH1cK7g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,291,1610438400"; d="scan'208";a="418309661" Received: from txasoft-yocto.an.intel.com ([10.123.72.192]) by orsmga008.jf.intel.com with ESMTP; 30 Mar 2021 12:36:34 -0700 From: Timothy McDaniel To: Cc: dev@dpdk.org, erik.g.carrillo@intel.com, gage.eads@intel.com, harry.van.haaren@intel.com, jerinj@marvell.com, thomas@monjalon.net Date: Tue, 30 Mar 2021 14:35:13 -0500 Message-Id: <1617132940-24800-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 v2 00/27] Add DLB V2.5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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