From patchwork Fri Oct 30 18:27:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Timothy McDaniel X-Patchwork-Id: 82994 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 620DEA04E6; Fri, 30 Oct 2020 19:26:39 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AB1184C9B; Fri, 30 Oct 2020 19:26:01 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 1160349E0 for ; Fri, 30 Oct 2020 19:25:54 +0100 (CET) IronPort-SDR: wEqMqKNmNjARN7kpDArxhgUqn1cCA3og1W3J1sHwcKxrr/UMAECVw8fmP9sCtn+8l615QLb1Rk nz5gHtsuIjug== X-IronPort-AV: E=McAfee;i="6000,8403,9790"; a="155624161" X-IronPort-AV: E=Sophos;i="5.77,434,1596524400"; d="scan'208";a="155624161" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Oct 2020 11:25:52 -0700 IronPort-SDR: 2GdHJXYP1cXPB7u0qMA0iI868I40aKOSbC4JYz4sbZbGkYzbPOU5SdBKU2Rh/pXYvazKx/EWP6 lvOdw5nF/uHA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,434,1596524400"; d="scan'208";a="361926341" Received: from txasoft-yocto.an.intel.com ([10.123.72.192]) by FMSMGA003.fm.intel.com with ESMTP; 30 Oct 2020 11:25:52 -0700 From: Timothy McDaniel To: Thomas Monjalon , Bruce Richardson , Ray Kinsella , Neil Horman Cc: dev@dpdk.org, erik.g.carrillo@intel.com, gage.eads@intel.com, harry.van.haaren@intel.com, jerinj@marvell.com Date: Fri, 30 Oct 2020 13:27:16 -0500 Message-Id: <1604082458-15368-2-git-send-email-timothy.mcdaniel@intel.com> X-Mailer: git-send-email 1.7.10 In-Reply-To: <1604082458-15368-1-git-send-email-timothy.mcdaniel@intel.com> References: <20200612212434.6852-2-timothy.mcdaniel@intel.com> <1604082458-15368-1-git-send-email-timothy.mcdaniel@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] =?utf-8?q?=5BPATCH_v10_01/23=5D_event/dlb=3A_add_documen?= =?utf-8?q?tation_and_meson_infrastructure?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Note that config/rte_config.h contains several configuration switches, providing for fine control of the PMD's runtime behaviour. The meson infrastructure is expanded as additional files are added to this patchset. Adds announcement of availabililty of the new driver for Intel Dynamic Load Balancer 1.0 hardware. Signed-off-by: Timothy McDaniel Reviewed-by: Gage Eads --- MAINTAINERS | 6 +++++- config/rte_config.h | 6 ++++++ doc/guides/eventdevs/dlb.rst | 36 ++++++++++++++++++++++++++++++++++ doc/guides/eventdevs/index.rst | 1 + doc/guides/rel_notes/release_20_11.rst | 5 +++++ drivers/event/dlb/meson.build | 13 ++++++++++++ drivers/event/dlb/version.map | 3 +++ drivers/event/meson.build | 2 +- 8 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 doc/guides/eventdevs/dlb.rst create mode 100644 drivers/event/dlb/meson.build create mode 100644 drivers/event/dlb/version.map diff --git a/MAINTAINERS b/MAINTAINERS index a3d1927..b904132 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1162,6 +1162,11 @@ Cavium OCTEON TX timvf M: Pavan Nikhilesh F: drivers/event/octeontx/timvf_* +Intel DLB +M: Timothy McDaniel +F: drivers/event/dlb/ +F: doc/guides/eventdevs/dlb.rst + Marvell OCTEON TX2 M: Pavan Nikhilesh M: Jerin Jacob @@ -1198,7 +1203,6 @@ M: Peter Mccarthy F: drivers/event/opdl/ F: doc/guides/eventdevs/opdl.rst - Rawdev Drivers -------------- diff --git a/config/rte_config.h b/config/rte_config.h index b78c6aa..9ebe4cc 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -135,4 +135,10 @@ /* QEDE PMD defines */ #define RTE_LIBRTE_QEDE_FW "" +/* DLB PMD defines */ +#define RTE_LIBRTE_PMD_DLB_POLL_INTERVAL 1000 +#define RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE 0 +#undef RTE_LIBRTE_PMD_DLB_QUELL_STATS +#define RTE_LIBRTE_PMD_DLB_SW_CREDIT_QUANTA 32 + #endif /* _RTE_CONFIG_H_ */ diff --git a/doc/guides/eventdevs/dlb.rst b/doc/guides/eventdevs/dlb.rst new file mode 100644 index 0000000..92341c0 --- /dev/null +++ b/doc/guides/eventdevs/dlb.rst @@ -0,0 +1,36 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2020 Intel Corporation. + +Driver for the IntelĀ® Dynamic Load Balancer (DLB) +================================================== + +The DPDK dlb poll mode driver supports the IntelĀ® Dynamic Load Balancer. + +Prerequisites +------------- + +Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup +the basic DPDK environment. + +Configuration +------------- + +The DLB PF PMD is a user-space PMD that uses VFIO to gain direct +device access. To use this operation mode, the PCIe PF device must be bound +to a DPDK-compatible VFIO driver, such as vfio-pci. + +Eventdev API Notes +------------------ + +The DLB provides the functions of a DPDK event device; specifically, it +supports atomic, ordered, and parallel scheduling events from queues to ports. +However, the DLB hardware is not a perfect match to the eventdev API. Some DLB +features are abstracted by the PMD (e.g. directed ports), some are only +accessible as vdev command-line parameters, and certain eventdev features are +not supported (e.g. the event flow ID is not maintained during scheduling). + +In general the dlb PMD is designed for ease-of-use and does not require a +detailed understanding of the hardware, but these details are important when +writing high-performance code. This section describes the places where the +eventdev API and DLB misalign. + diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index bb66a5e..4b915bf 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -11,6 +11,7 @@ application through the eventdev API. :maxdepth: 2 :numbered: + dlb dpaa dpaa2 dsw diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index d8ac359..0a95bf0 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -55,6 +55,11 @@ New Features Also, make sure to start the actual text at the margin. ======================================================= +* **Added a new driver for the Intel Dynamic Load Balancer v1.0 device.** + + Added the new ``dlb`` eventdev driver for the Intel DLB V1.0 device. See the + :doc:`../eventdevs/dlb` eventdev guide for more details on this new driver. + * **Added write combining store APIs.** Added ``rte_write32_wc`` and ``rte_write32_wc_relaxed`` APIs diff --git a/drivers/event/dlb/meson.build b/drivers/event/dlb/meson.build new file mode 100644 index 0000000..5324043 --- /dev/null +++ b/drivers/event/dlb/meson.build @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019-2020 Intel Corporation + +if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64') + build = false + reason = 'only supported on ARCH_X86_64 Linux' + subdir_done() +endif + +sources = files( +) + +deps += ['mbuf', 'mempool', 'ring', 'pci', 'bus_pci'] diff --git a/drivers/event/dlb/version.map b/drivers/event/dlb/version.map new file mode 100644 index 0000000..4a76d1d --- /dev/null +++ b/drivers/event/dlb/version.map @@ -0,0 +1,3 @@ +DPDK_21 { + local: *; +}; diff --git a/drivers/event/meson.build b/drivers/event/meson.build index a7dac99..6601e62 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -5,7 +5,7 @@ if is_windows subdir_done() endif -drivers = ['dpaa', 'dpaa2', 'octeontx2', 'opdl', 'skeleton', 'sw', 'dsw'] +drivers = ['dlb', 'dpaa', 'dpaa2', 'octeontx2', 'opdl', 'skeleton', 'sw', 'dsw'] if not (toolchain == 'gcc' and cc.version().version_compare('<4.8.6') and dpdk_conf.has('RTE_ARCH_ARM64')) drivers += 'octeontx'