Re: [dpdk-dev] [PATCH v6 01/23] event/dlb: add documentation and meson infrastructure
From: Jerin Jacob <hidden>
Date: 2020-10-24 13:06:01
On Sat, Oct 24, 2020 at 12:08 AM Timothy McDaniel [off-list ref] wrote:
Increased RTE_EVENT_MAX_QUEUES_PER_DEV config option from 64 to 255.
Please send a separate patch for changing this value with reason.
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.
Also, there are similar build errors[1] found as reported by DLB2. [1] Message: Disabling mlx5 [drivers/vdpa/mlx5]: missing internal dependency "common_mlx5" drivers/meson.build:179: WARNING: Custom target input '/export/dpdk-next-eventdev/drivers/event/dlb/version.map' can't be converted to File object(s). This will become a hard error in the future. drivers/meson.build:184: WARNING: Custom target input '/export/dpdk-next-eventdev/drivers/event/dlb/version.map' can't be converted to File object(s). This will become a hard error in the future. drivers/meson.build:207:3: ERROR: File /export/dpdk-next-eventdev/drivers/event/dlb/version.map does not exist. A full log can be found at /export/dpdk-next-eventdev/build-gcc-static/meson-logs/meson-log.txt
quoted hunk ↗ jump to hunk
Signed-off-by: Timothy McDaniel <redacted> --- MAINTAINERS | 5 ++++ config/rte_config.h | 8 +++++- doc/guides/eventdevs/dlb.rst | 36 +++++++++++++++++++++++++ doc/guides/eventdevs/index.rst | 1 + drivers/event/dlb/meson.build | 13 +++++++++ drivers/event/dlb/rte_pmd_dlb_event_version.map | 3 +++ drivers/event/meson.build | 2 +- 7 files changed, 66 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/rte_pmd_dlb_event_version.mapdiff --git a/MAINTAINERS b/MAINTAINERS index c0abbe0..2ca4a4f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS@@ -1188,6 +1188,11 @@ M: Peter Mccarthy <peter.mccarthy@intel.com> F: drivers/event/opdl/ F: doc/guides/eventdevs/opdl.rst +Intel DLB Eventdev PMD +M: Timothy McDaniel <timothy.mcdaniel@intel.com> +F: drivers/event/dlb/ +F: doc/guides/eventdevs/dlb.rst + Rawdev Drivers --------------diff --git a/config/rte_config.h b/config/rte_config.h index 0bae630..4262339 100644 --- a/config/rte_config.h +++ b/config/rte_config.h@@ -70,7 +70,7 @@ /* eventdev defines */ #define RTE_EVENT_MAX_DEVS 16 -#define RTE_EVENT_MAX_QUEUES_PER_DEV 64 +#define RTE_EVENT_MAX_QUEUES_PER_DEV 255 #define RTE_EVENT_TIMER_ADAPTER_NUM_MAX 32 #define RTE_EVENT_ETH_INTR_RING_SIZE 1024 #define RTE_EVENT_CRYPTO_ADAPTER_MAX_INSTANCE 32@@ -131,4 +131,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 <linux_gsg>` 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 dswdiff --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/rte_pmd_dlb_event_version.map b/drivers/event/dlb/rte_pmd_dlb_event_version.map new file mode 100644 index 0000000..4a76d1d --- /dev/null +++ b/drivers/event/dlb/rte_pmd_dlb_event_version.map@@ -0,0 +1,3 @@ +DPDK_21 { + local: *; +};diff --git a/drivers/event/meson.build b/drivers/event/meson.build index ebe76a7..5030764 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' --2.6.4