Skip to contentSkip to conversation

event: Remove Support For DLB V1

PATCH Applied Timothy McDaniel 2 participants 2 messages Mar 16, 2021 – Mar 21, 2021 Arm/Amlogic Meson SoC support

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 event: Remove Support For DLB V1

Removed source code, rte_config defines, and documentation. Removed from build.
Updated release notes to announce removal.

---
 config/rte_config.h                          |    6 -
 doc/api/doxy-api-index.md                    |    1 -
 doc/api/doxy-api.conf.in                     |    1 -
 doc/guides/eventdevs/dlb.rst                 |  341 -
 doc/guides/eventdevs/index.rst               |    1 -
 doc/guides/rel_notes/release_21_05.rst       |    3 +
 drivers/event/dlb/dlb.c                      | 4082 -----------
 drivers/event/dlb/dlb_iface.c                |   79 -
 drivers/event/dlb/dlb_iface.h                |   82 -
 drivers/event/dlb/dlb_inline_fns.h           |   36 -
 drivers/event/dlb/dlb_log.h                  |   25 -
 drivers/event/dlb/dlb_priv.h                 |  513 --
 drivers/event/dlb/dlb_selftest.c             | 1544 ----
 drivers/event/dlb/dlb_user.h                 |  814 ---
 drivers/event/dlb/dlb_xstats.c               | 1212 ---
 drivers/event/dlb/meson.build                |   22 -
 drivers/event/dlb/pf/base/dlb_hw_types.h     |  334 -
 drivers/event/dlb/pf/base/dlb_osdep.h        |  310 -
 drivers/event/dlb/pf/base/dlb_osdep_bitmap.h |  441 --
 drivers/event/dlb/pf/base/dlb_osdep_list.h   |  131 -
 drivers/event/dlb/pf/base/dlb_osdep_types.h  |   31 -
 drivers/event/dlb/pf/base/dlb_regs.h         | 2368 ------
 drivers/event/dlb/pf/base/dlb_resource.c     | 6904 ------------------
 drivers/event/dlb/pf/base/dlb_resource.h     |  876 ---
 drivers/event/dlb/pf/dlb_main.c              |  552 --
 drivers/event/dlb/pf/dlb_main.h              |   47 -
 drivers/event/dlb/pf/dlb_pf.c                |  752 --
 drivers/event/dlb/rte_pmd_dlb.c              |   38 -
 drivers/event/dlb/rte_pmd_dlb.h              |   77 -
 drivers/event/dlb/version.map                |    9 -
 drivers/event/meson.build                    |    2 +-
 31 files changed, 4 insertions(+), 21630 deletions(-)
 delete mode 100644 doc/guides/eventdevs/dlb.rst
 delete mode 100644 drivers/event/dlb/dlb.c
 delete mode 100644 drivers/event/dlb/dlb_iface.c
 delete mode 100644 drivers/event/dlb/dlb_iface.h
 delete mode 100644 drivers/event/dlb/dlb_inline_fns.h
 delete mode 100644 drivers/event/dlb/dlb_log.h
 delete mode 100644 drivers/event/dlb/dlb_priv.h
 delete mode 100644 drivers/event/dlb/dlb_selftest.c
 delete mode 100644 drivers/event/dlb/dlb_user.h
 delete mode 100644 drivers/event/dlb/dlb_xstats.c
 delete mode 100644 drivers/event/dlb/meson.build
 delete mode 100644 drivers/event/dlb/pf/base/dlb_hw_types.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_bitmap.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_list.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_types.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_regs.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_resource.c
 delete mode 100644 drivers/event/dlb/pf/base/dlb_resource.h
 delete mode 100644 drivers/event/dlb/pf/dlb_main.c
 delete mode 100644 drivers/event/dlb/pf/dlb_main.h
 delete mode 100644 drivers/event/dlb/pf/dlb_pf.c
 delete mode 100644 drivers/event/dlb/rte_pmd_dlb.c
 delete mode 100644 drivers/event/dlb/rte_pmd_dlb.h
 delete mode 100644 drivers/event/dlb/version.map
config/rte_config.h +0 -6
index 55a2fc50e..aedb68c42 100644
@@ -138,12 +138,6 @@
 /* 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
-
 /* DLB2 defines */
 #define RTE_LIBRTE_PMD_DLB2_POLL_INTERVAL 1000
 #define RTE_LIBRTE_PMD_DLB2_UMWAIT_CTL_STATE  0
doc/api/doxy-api-index.md +0 -1
index 748514e24..38376149c 100644
@@ -55,7 +55,6 @@ The public API headers are grouped by topics:
   [dpaa2_cmdif]        (@ref rte_pmd_dpaa2_cmdif.h),
   [dpaa2_qdma]         (@ref rte_pmd_dpaa2_qdma.h),
   [crypto_scheduler]   (@ref rte_cryptodev_scheduler.h),
-  [dlb]                (@ref rte_pmd_dlb.h),
   [dlb2]               (@ref rte_pmd_dlb2.h)
 
 - **memory**:
doc/api/doxy-api.conf.in +0 -1
index 5c883b613..49d1c3ac4 100644
@@ -7,7 +7,6 @@ USE_MDFILE_AS_MAINPAGE  = @TOPDIR@/doc/api/doxy-api-index.md
 INPUT                   = @TOPDIR@/doc/api/doxy-api-index.md \
                           @TOPDIR@/drivers/bus/vdev \
                           @TOPDIR@/drivers/crypto/scheduler \
-                          @TOPDIR@/drivers/event/dlb \
                           @TOPDIR@/drivers/event/dlb2 \
                           @TOPDIR@/drivers/mempool/dpaa2 \
                           @TOPDIR@/drivers/net/ark \
doc/guides/eventdevs/dlb.rst deleted +0 -341

341 lines not on this page · raw message

doc/guides/eventdevs/index.rst +0 -1
index f5b69b39d..738788d9e 100644
@@ -11,7 +11,6 @@ application through the eventdev API.
     :maxdepth: 2
     :numbered:
 
-    dlb
     dlb2
     dpaa
     dpaa2
doc/guides/rel_notes/release_21_05.rst +3 -0
index 5aa9ed7db..07d12a3af 100644
@@ -68,6 +68,9 @@ Removed Items
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* Removed support for DLB V1 hardware.  This is not a broad market device,
+  and existing customers already obtain the source code directly from Intel.
+
 
 API Changes
 -----------
drivers/event/dlb/dlb.c deleted +0 -4082

2,617 lines not on this page · raw message

drivers/event/dlb/dlb_iface.c deleted +0 -79

79 lines not on this page · raw message

drivers/event/dlb/dlb_iface.h deleted +0 -82

82 lines not on this page · raw message

drivers/event/dlb/dlb_inline_fns.h deleted +0 -36
deleted file mode 100644
index aae94dc3c..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_log.h deleted +0 -25
deleted file mode 100644
index c69c9e5be..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_priv.h deleted +0 -513

513 lines not on this page · raw message

drivers/event/dlb/dlb_selftest.c deleted +0 -1544

1,544 lines not on this page · raw message

drivers/event/dlb/dlb_user.h deleted +0 -814

814 lines not on this page · raw message

drivers/event/dlb/dlb_xstats.c deleted +0 -1212

1,212 lines not on this page · raw message

drivers/event/dlb/meson.build deleted +0 -22
deleted file mode 100644
index bc158d2e0..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -334

334 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -310

310 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -441

441 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_osdep_list.h deleted +0 -131

131 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_osdep_types.h deleted +0 -31
deleted file mode 100644
index 2e9d7d8d0..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_regs.h deleted +0 -2368

2,368 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -6904

6,904 lines not on this page · raw message

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -876

876 lines not on this page · raw message

drivers/event/dlb/pf/dlb_main.c deleted +0 -552

552 lines not on this page · raw message

drivers/event/dlb/pf/dlb_main.h deleted +0 -47

47 lines not on this page · raw message

drivers/event/dlb/pf/dlb_pf.c deleted +0 -752

752 lines not on this page · raw message

drivers/event/dlb/rte_pmd_dlb.c deleted +0 -38
deleted file mode 100644
index 8f56dc306..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/rte_pmd_dlb.h deleted +0 -77

77 lines not on this page · raw message

drivers/event/dlb/version.map deleted +0 -9
deleted file mode 100644
index 3338a22c1..000000000

Lines of this file are not shown. View the raw message.

drivers/event/meson.build +1 -1
index a49288a5d..b7f9bf7c6 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.23.0

Part of the diff is not shown here. View the raw message.

Applied
#1 lore raw
Quoted 5 lines · Timothy McDaniel

Removed source code, rte_config defines, and documentation. Removed from build.
Updated release notes to announce removal.

Applied to dpdk-next-net-eventdev/for-main after following changes. Thanks

1) Removed stale dlb section in MAINTAINERS file
2) Removed stale dlb reference from app/test/test_eventdev.c
3) Updated git commit message to
event/dlb: remove dlb driver

Remove event/dlb driver from dpdk code base. Updated release note's removal section to reflect the same.

Quoted 22,311 lines
---
 config/rte_config.h                          |    6 -
 doc/api/doxy-api-index.md                    |    1 -
 doc/api/doxy-api.conf.in                     |    1 -
 doc/guides/eventdevs/dlb.rst                 |  341 -
 doc/guides/eventdevs/index.rst               |    1 -
 doc/guides/rel_notes/release_21_05.rst       |    3 +
 drivers/event/dlb/dlb.c                      | 4082 -----------
 drivers/event/dlb/dlb_iface.c                |   79 -
 drivers/event/dlb/dlb_iface.h                |   82 -
 drivers/event/dlb/dlb_inline_fns.h           |   36 -
 drivers/event/dlb/dlb_log.h                  |   25 -
 drivers/event/dlb/dlb_priv.h                 |  513 --
 drivers/event/dlb/dlb_selftest.c             | 1544 ----
 drivers/event/dlb/dlb_user.h                 |  814 ---
 drivers/event/dlb/dlb_xstats.c               | 1212 ---
 drivers/event/dlb/meson.build                |   22 -
 drivers/event/dlb/pf/base/dlb_hw_types.h     |  334 -
 drivers/event/dlb/pf/base/dlb_osdep.h        |  310 -
 drivers/event/dlb/pf/base/dlb_osdep_bitmap.h |  441 --
 drivers/event/dlb/pf/base/dlb_osdep_list.h   |  131 -
 drivers/event/dlb/pf/base/dlb_osdep_types.h  |   31 -
 drivers/event/dlb/pf/base/dlb_regs.h         | 2368 ------
 drivers/event/dlb/pf/base/dlb_resource.c     | 6904 ------------------
 drivers/event/dlb/pf/base/dlb_resource.h     |  876 ---
 drivers/event/dlb/pf/dlb_main.c              |  552 --
 drivers/event/dlb/pf/dlb_main.h              |   47 -
 drivers/event/dlb/pf/dlb_pf.c                |  752 --
 drivers/event/dlb/rte_pmd_dlb.c              |   38 -
 drivers/event/dlb/rte_pmd_dlb.h              |   77 -
 drivers/event/dlb/version.map                |    9 -
 drivers/event/meson.build                    |    2 +-
 31 files changed, 4 insertions(+), 21630 deletions(-)
 delete mode 100644 doc/guides/eventdevs/dlb.rst
 delete mode 100644 drivers/event/dlb/dlb.c
 delete mode 100644 drivers/event/dlb/dlb_iface.c
 delete mode 100644 drivers/event/dlb/dlb_iface.h
 delete mode 100644 drivers/event/dlb/dlb_inline_fns.h
 delete mode 100644 drivers/event/dlb/dlb_log.h
 delete mode 100644 drivers/event/dlb/dlb_priv.h
 delete mode 100644 drivers/event/dlb/dlb_selftest.c
 delete mode 100644 drivers/event/dlb/dlb_user.h
 delete mode 100644 drivers/event/dlb/dlb_xstats.c
 delete mode 100644 drivers/event/dlb/meson.build
 delete mode 100644 drivers/event/dlb/pf/base/dlb_hw_types.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_bitmap.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_list.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_osdep_types.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_regs.h
 delete mode 100644 drivers/event/dlb/pf/base/dlb_resource.c
 delete mode 100644 drivers/event/dlb/pf/base/dlb_resource.h
 delete mode 100644 drivers/event/dlb/pf/dlb_main.c
 delete mode 100644 drivers/event/dlb/pf/dlb_main.h
 delete mode 100644 drivers/event/dlb/pf/dlb_pf.c
 delete mode 100644 drivers/event/dlb/rte_pmd_dlb.c
 delete mode 100644 drivers/event/dlb/rte_pmd_dlb.h
 delete mode 100644 drivers/event/dlb/version.map
config/rte_config.h +0 -6
index 55a2fc50e..aedb68c42 100644
@@ -138,12 +138,6 @@
 /* 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
-
 /* DLB2 defines */
 #define RTE_LIBRTE_PMD_DLB2_POLL_INTERVAL 1000
 #define RTE_LIBRTE_PMD_DLB2_UMWAIT_CTL_STATE  0
doc/api/doxy-api-index.md +0 -1
index 748514e24..38376149c 100644
@@ -55,7 +55,6 @@ The public API headers are grouped by topics:
   [dpaa2_cmdif]        (@ref rte_pmd_dpaa2_cmdif.h),
   [dpaa2_qdma]         (@ref rte_pmd_dpaa2_qdma.h),
   [crypto_scheduler]   (@ref rte_cryptodev_scheduler.h),
-  [dlb]                (@ref rte_pmd_dlb.h),
   [dlb2]               (@ref rte_pmd_dlb2.h)
 
 - **memory**:
doc/api/doxy-api.conf.in +0 -0
index 5c883b613..49d1c3ac4 100644
@@ -7,7 +7,6 @@ USE_MDFILE_AS_MAINPAGE  =

@TOPDIR@/doc/api/doxy-api-index.md

 INPUT                   = @TOPDIR@/doc/api/doxy-api-index.md \
                           @TOPDIR@/drivers/bus/vdev \
                           @TOPDIR@/drivers/crypto/scheduler \
doc/api/doxy-api.conf.in +0 -1
-                          @TOPDIR@/drivers/event/dlb \
                           @TOPDIR@/drivers/event/dlb2 \
                           @TOPDIR@/drivers/mempool/dpaa2 \
                           @TOPDIR@/drivers/net/ark \
doc/guides/eventdevs/dlb.rst deleted +0 -12
deleted file mode 100644
index d44afcdcf..000000000
@@ -1,341 +0,0 @@
-..  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

doc/guides/eventdevs/dlb.rst deleted +0 -7
-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

doc/guides/eventdevs/dlb.rst deleted +0 -7
-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

doc/guides/eventdevs/dlb.rst deleted +0 -2
-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).

doc/guides/eventdevs/dlb.rst deleted +0 -3
-
-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

doc/guides/eventdevs/dlb.rst deleted +0 -10
-writing high-performance code. This section describes the places where the
-eventdev API and DLB misalign.
-
-Scheduling Domain Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are 32 scheduling domainis the DLB.
-When one is configured, it allocates load-balanced and
-directed queues, ports, credits, and other hardware resources. Some
-resource allocations are user-controlled -- the number of queues, for

example
--- and others, like credit pools (one directed and one load-balanced pool per

doc/guides/eventdevs/dlb.rst deleted +0 -3
-scheduling domain), are not.
-
-The DLB is a closed system eventdev, and as such the ``nb_events_limit``

device

doc/guides/eventdevs/dlb.rst deleted +0 -8
-setup argument and the per-port ``new_event_threshold`` argument apply as
-defined in the eventdev header file. The limit is applied to all enqueues,
-regardless of whether it will consume a directed or load-balanced credit.
-
-Reconfiguration
-~~~~~~~~~~~~~~~
-
-The Eventdev API allows one to reconfigure a device, its ports, and its

queues

doc/guides/eventdevs/dlb.rst deleted +0 -2
-by first stopping the device, calling the configuration function(s), then
-restarting the device. The DLB does not support configuring an individual

queue
-or port without first reconfiguring the entire device, however, so there are
-certain reconfiguration sequences that are valid in the eventdev API but not

doc/guides/eventdevs/dlb.rst deleted +0 -9
-supported by the PMD.
-
-Specifically, the PMD supports the following configuration sequence:
-1. Configure and start the device
-2. Stop the device
-3. (Optional) Reconfigure the device
-4. (Optional) If step 3 is run:
-
-   a. Setup queue(s). The reconfigured queue(s) lose their previous port

links.

doc/guides/eventdevs/dlb.rst deleted +0 -4
-   b. The reconfigured port(s) lose their previous queue links.
-
-5. (Optional, only if steps 4a and 4b are run) Link port(s) to queue(s)
-6. Restart the device. If the device is reconfigured in step 3 but one or

more

doc/guides/eventdevs/dlb.rst deleted +0 -10
-   of its ports or queues are not, the PMD will apply their previous
-   configuration (including port->queue links) at this time.
-
-The PMD does not support the following configuration sequences:
-1. Configure and start the device
-2. Stop the device
-3. Setup queue or setup port
-4. Start the device
-
-This sequence is not supported because the event device must be

reconfigured

doc/guides/eventdevs/dlb.rst deleted +0 -6
-before its ports or queues can be.
-
-Load-Balanced Queues
-~~~~~~~~~~~~~~~~~~~~
-
-A load-balanced queue can support atomic and ordered scheduling, or atomic

and
-unordered scheduling, but not atomic and unordered and ordered scheduling. A

doc/guides/eventdevs/dlb.rst deleted +0 -5
-queue's scheduling types are controlled by the event queue configuration.
-
-If the user sets the ``RTE_EVENT_QUEUE_CFG_ALL_TYPES`` flag, the
-``nb_atomic_order_sequences`` determines the supported scheduling types.
-With non-zero ``nb_atomic_order_sequences``, the queue is configured for

atomic
-and ordered scheduling. In this case, ``RTE_SCHED_TYPE_PARALLEL`` scheduling is
-supported by scheduling those events as ordered events. Note that when the
-event is dequeued, its sched_type will be ``RTE_SCHED_TYPE_ORDERED``. Else if
-``nb_atomic_order_sequences`` is zero, the queue is configured for atomic and
-unordered scheduling. In this case, ``RTE_SCHED_TYPE_ORDERED`` is unsupported.

doc/guides/eventdevs/dlb.rst deleted +0 -5
-
-If the ``RTE_EVENT_QUEUE_CFG_ALL_TYPES`` flag is not set, schedule_type
-dictates the queue's scheduling type.
-
-The ``nb_atomic_order_sequences`` queue configuration field sets the

ordered
-queue's reorder buffer size. DLB has 4 groups of ordered queues, where each

doc/guides/eventdevs/dlb.rst deleted +0 -2
-group is configured to contain either 1 queue with 1024 reorder entries, 2
-queues with 512 reorder entries, and so on down to 32 queues with 32

entries.

doc/guides/eventdevs/dlb.rst deleted +0 -2
-
-When a load-balanced queue is created, the PMD will configure a new

sequence
-number group on-demand if num_sequence_numbers does not match a pre-existing
-group with available reorder buffer entries. If all sequence number groups are
-in use, no new group will be created and queue configuration will fail. (Note

doc/guides/eventdevs/dlb.rst deleted +0 -4
-that when the PMD is used with a virtual DLB device, it cannot change the
-sequence number configuration.)
-
-The queue's ``nb_atomic_flows`` parameter is ignored by the DLB PMD,

because
-the DLB does not limit the number of flows a queue can track. In the DLB, all

doc/guides/eventdevs/dlb.rst deleted +0 -6
-load-balanced queues can use the full 16-bit flow ID range.
-
-Load-balanced and Directed Ports
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-DLB ports come in two flavors: load-balanced and directed. The eventdev

API
-does not have the same concept, but it has a similar one: ports and queues that

doc/guides/eventdevs/dlb.rst deleted +0 -4
-are singly-linked (i.e. linked to a single queue or port, respectively).
-
-The ``rte_event_dev_info_get()`` function reports the number of available
-event ports and queues (among other things). For the DLB PMD,

max_event_ports
-and max_event_queues report the number of available load-balanced ports and

doc/guides/eventdevs/dlb.rst deleted +0 -4
-queues, and max_single_link_event_port_queue_pairs reports the number of
-available directed ports and queues.
-
-When a scheduling domain is created in ``rte_event_dev_configure()``, the

user
-specifies ``nb_event_ports`` and ``nb_single_link_event_port_queues``, which
-control the total number of ports (load-balanced and directed) and the number
-of directed ports. Hence, the number of requested load-balanced ports is -``nb_event_ports - nb_single_link_event_ports``. The ``nb_event_queues`` field
-specifies the total number of queues (load-balanced and directed). The number

doc/guides/eventdevs/dlb.rst deleted +0 -4
-of directed queues comes from ``nb_single_link_event_port_queues``, since
-directed ports and queues come in pairs.
-
-When a port is setup, the ``RTE_EVENT_PORT_CFG_SINGLE_LINK`` flag

determines

doc/guides/eventdevs/dlb.rst deleted +0 -6
-whether it should be configured as a directed (the flag is set) or a
-load-balanced (the flag is unset) port. Similarly, the
-``RTE_EVENT_QUEUE_CFG_SINGLE_LINK`` queue configuration flag controls
-whether it is a directed or load-balanced queue.
-
-Load-balanced ports can only be linked to load-balanced queues, and

directed
-ports can only be linked to directed queues. Furthermore, directed ports can

doc/guides/eventdevs/dlb.rst deleted +0 -4
-only be linked to a single directed queue (and vice versa), and that link
-cannot change after the eventdev is started.
-
-The eventdev API does not have a directed scheduling type. To support

directed
-traffic, the dlb PMD detects when an event is being sent to a directed queue
-and overrides its scheduling type. Note that the originally selected scheduling
-type (atomic, ordered, or parallel) is not preserved, and an event's sched_type
-will be set to ``RTE_SCHED_TYPE_ATOMIC`` when it is dequeued from a directed

doc/guides/eventdevs/dlb.rst deleted +0 -6
-port.
-
-Flow ID
-~~~~~~~
-
-The flow ID field is not preserved in the event when it is scheduled in

the

doc/guides/eventdevs/dlb.rst deleted +0 -2
-DLB, because the DLB hardware control word format does not have sufficient
-space to preserve every event field. As a result, the flow ID specified

with

doc/guides/eventdevs/dlb.rst deleted +0 -6
-the enqueued event will not be in the dequeued event. If this field is
-required, the application should pass it through an out-of-band path (for
-example in the mbuf's udata64 field, if the event points to an mbuf) or
-reconstruct the flow ID after receiving the event.
-
-Also, the DLB hardware control word supports a 16-bit flow ID. Since

struct
-rte_event's flow_id field is 20 bits, the DLB PMD drops the most significant

doc/guides/eventdevs/dlb.rst deleted +0 -6
-four bits from the event's flow ID.
-
-Hardware Credits
-~~~~~~~~~~~~~~~~
-
-DLB uses a hardware credit scheme to prevent software from overflowing

hardware
-event storage, with each unit of storage represented by a credit. A port spends
-a credit to enqueue an event, and hardware refills the ports with credits as the
-events are scheduled to ports. Refills come from credit pools, and each port is

doc/guides/eventdevs/dlb.rst deleted +0 -2
-a member of a load-balanced credit pool and a directed credit pool. The
-load-balanced credits are used to enqueue to load-balanced queues, and

directed

doc/guides/eventdevs/dlb.rst deleted +0 -3
-credits are used for directed queues.
-
-A DLB eventdev contains one load-balanced and one directed credit pool.

These

doc/guides/eventdevs/dlb.rst deleted +0 -4
-pools' sizes are controlled by the nb_events_limit field in struct
-rte_event_dev_config. The load-balanced pool is sized to contain
-nb_events_limit credits, and the directed pool is sized to contain
-nb_events_limit/4 credits. The directed pool size can be overridden with

the

doc/guides/eventdevs/dlb.rst deleted +0 -8
-num_dir_credits vdev argument, like so:
-
-    .. code-block:: console
-
-       --vdev=dlb1_event,num_dir_credits=<value>
-
-This can be used if the default allocation is too low or too high for the
-specific application needs. The PMD also supports a vdev arg that limits

the

doc/guides/eventdevs/dlb.rst deleted +0 -7
-max_num_events reported by rte_event_dev_info_get():
-
-    .. code-block:: console
-
-       --vdev=dlb1_event,max_num_events=<value>
-
-By default, max_num_events is reported as the total available

load-balanced
-credits. If multiple DLB-based applications are being used, it may be desirable
-to control how many load-balanced credits each application uses, particularly

doc/guides/eventdevs/dlb.rst deleted +0 -5
-when application(s) are written to configure nb_events_limit equal to the
-reported max_num_events.
-
-Each port is a member of both credit pools. A port's credit allocation is
-defined by its low watermark, high watermark, and refill quanta. These

three

doc/guides/eventdevs/dlb.rst deleted +0 -4
-parameters are calculated by the dlb PMD like so:
-
-- The load-balanced high watermark is set to the port's enqueue_depth.
-  The directed high watermark is set to the minimum of the enqueue_depth

and

doc/guides/eventdevs/dlb.rst deleted +0 -5
-  the directed pool size divided by the total number of ports.
-- The refill quanta is set to half the high watermark.
-- The low watermark is set to the minimum of 16 and the refill quanta.
-
-When the eventdev is started, each port is pre-allocated a high

watermark's
-worth of credits. For example, if an eventdev contains four ports with enqueue
-depths of 32 and a load-balanced credit pool size of 4096, each port will start

doc/guides/eventdevs/dlb.rst deleted +0 -2
-with 32 load-balanced credits, and there will be 3968 credits available to
-replenish the ports. Thus, a single port is not capable of enqueueing up to

the
-nb_events_limit (without any events being dequeued), since the other ports are
-retaining their initial credit allocation; in short, all ports must enqueue in

doc/guides/eventdevs/dlb.rst deleted +0 -4
-order to reach the limit.
-
-If a port attempts to enqueue and has no credits available, the enqueue
-operation will fail and the application must retry the enqueue. Credits

are

doc/guides/eventdevs/dlb.rst deleted +0 -10
-replenished asynchronously by the DLB hardware.
-
-Software Credits
-~~~~~~~~~~~~~~~~
-
-The DLB is a "closed system" event dev, and the DLB PMD layers a software
-credit scheme on top of the hardware credit scheme in order to comply with
-the per-port backpressure described in the eventdev API.
-
-The DLB's hardware scheme is local to a queue/pipeline stage: a port spends

a
-credit when it enqueues to a queue, and credits are later replenished after the

doc/guides/eventdevs/dlb.rst deleted +0 -5
-events are dequeued and released.
-
-In the software credit scheme, a credit is consumed when a new (.op =
-RTE_EVENT_OP_NEW) event is injected into the system, and the credit is
-replenished when the event is released from the system (either explicitly

with

doc/guides/eventdevs/dlb.rst deleted +0 -3
-RTE_EVENT_OP_RELEASE or implicitly in dequeue_burst()).
-
-In this model, an event is "in the system" from its first enqueue into

eventdev
-until it is last dequeued. If the event goes through multiple event queues, it
-is still considered "in the system" while a worker thread is processing it.

doc/guides/eventdevs/dlb.rst deleted +0 -2
-
-A port will fail to enqueue if the number of events in the system exceeds

its
-``new_event_threshold`` (specified at port setup time). A port will also fail

doc/guides/eventdevs/dlb.rst deleted +0 -2
-to enqueue if it lacks enough hardware credits to enqueue; load-balanced
-credits are used to enqueue to a load-balanced queue, and directed credits

are

doc/guides/eventdevs/dlb.rst deleted +0 -10
-used to enqueue to a directed queue.
-
-The out-of-credit situations are typically transient, and an eventdev
-application using the DLB ought to retry its enqueues if they fail.
-If enqueue fails, DLB PMD sets rte_errno as follows:
-
-- -ENOSPC: Credit exhaustion (either hardware or software)
-- -EINVAL: Invalid argument, such as port ID, queue ID, or sched_type.
-
-Depending on the pipeline the application has constructed, it's possible

to
-enter a credit deadlock scenario wherein the worker thread lacks the credit
-to enqueue an event, and it must dequeue an event before it can recover the

doc/guides/eventdevs/dlb.rst deleted +0 -2
-credit. If the worker thread retries its enqueue indefinitely, it will not
-make forward progress. Such deadlock is possible if the application has

event
-"loops", in which an event in dequeued from queue A and later enqueued back to

doc/guides/eventdevs/dlb.rst deleted +0 -3
-queue A.
-
-Due to this, workers should stop retrying after a time, release the events

it
-is attempting to enqueue, and dequeue more events. It is important that the
-worker release the events and don't simply set them aside to retry the enqueue
-again later, because the port has limited history list size (by default, twice

doc/guides/eventdevs/dlb.rst deleted +0 -7
-the port's dequeue_depth).
-
-Priority
-~~~~~~~~
-
-The DLB supports event priority and per-port queue service priority, as
-described in the eventdev header file. The DLB does not support 'global'

event

doc/guides/eventdevs/dlb.rst deleted +0 -4
-queue priority established at queue creation time.
-
-DLB supports 8 event and queue service priority levels. For both priority
-types, the PMD uses the upper three bits of the priority field to determine

the
-DLB priority, discarding the 5 least significant bits. The 5 least significant

doc/guides/eventdevs/dlb.rst deleted +0 -6
-event priority bits are not preserved when an event is enqueued.
-
-Atomic Inflights Allocation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In the last stage prior to scheduling an atomic event to a CQ, DLB holds

the

doc/guides/eventdevs/dlb.rst deleted +0 -6
-inflight event in a temporary buffer that is divided among load-balanced
-queues. If a queue's atomic buffer storage fills up, this can result in
-head-of-line-blocking. For example:
-
-- An LDB queue allocated N atomic buffer entries
-- All N entries are filled with events from flow X, which is pinned to CQ

0.

doc/guides/eventdevs/dlb.rst deleted +0 -2
-
-Until CQ 0 releases 1+ events, no other atomic flows for that LDB queue can

be
-scheduled. The likelihood of this case depends on the eventdev configuration,

doc/guides/eventdevs/dlb.rst deleted +0 -4
-traffic behavior, event processing latency, potential for a worker to be
-interrupted or otherwise delayed, etc.
-
-By default, the PMD allocates 16 buffer entries for each load-balanced

queue,
-which provides an even division across all 128 queues but potentially wastes

doc/guides/eventdevs/dlb.rst deleted +0 -4
-buffer space (e.g. if not all queues are used, or aren't used for atomic
-scheduling).
-
-The PMD provides a dev arg to override the default per-queue allocation.

To
-increase a vdev's per-queue atomic-inflight allocation to (for example) 64:

doc/guides/eventdevs/dlb.rst deleted +0 -9
-
-    .. code-block:: console
-
-       --vdev=dlb1_event,atm_inflights=64
-
-Deferred Scheduling
-~~~~~~~~~~~~~~~~~~~
-
-The DLB PMD's default behavior for managing a CQ is to "pop" the CQ once

per
-dequeued event before returning from rte_event_dequeue_burst(). This frees the
-corresponding entries in the CQ, which enables the DLB to schedule more events

doc/guides/eventdevs/dlb.rst deleted +0 -3
-to it.
-
-To support applications seeking finer-grained scheduling control -- for

example

doc/guides/eventdevs/dlb.rst deleted +0 -2
-deferring scheduling to get the best possible priority scheduling and
-load-balancing -- the PMD supports a deferred scheduling mode. In this

mode,
-the CQ entry is not popped until the *subsequent* rte_event_dequeue_burst()
-call. This mode only applies to load-balanced event ports with dequeue depth of
-1.

doc/guides/eventdevs/dlb.rst deleted +0 -7
-
-To enable deferred scheduling, use the defer_sched vdev argument like so:
-
-    .. code-block:: console
-
-       --vdev=dlb1_event,defer_sched=on
-
doc/guides/eventdevs/index.rst +0 -1
index f5b69b39d..738788d9e 100644
@@ -11,7 +11,6 @@ application through the eventdev API.
     :maxdepth: 2
     :numbered:
 
-    dlb
     dlb2
     dpaa
     dpaa2
doc/guides/rel_notes/release_21_05.rst +2 -0
index 5aa9ed7db..07d12a3af 100644
@@ -68,6 +68,9 @@ Removed Items
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* Removed support for DLB V1 hardware.  This is not a broad market device,
+  and existing customers already obtain the source code directly from

Intel.

doc/guides/rel_notes/release_21_05.rst +1 -0
+
 
 API Changes
 -----------
drivers/event/dlb/dlb.c deleted +0 -44
deleted file mode 100644
index 8b26d1d2d..000000000
@@ -1,4082 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016-2020 Intel Corporation
- */
-
-#include <assert.h>
-#include <errno.h>
-#include <nmmintrin.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/fcntl.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#include <rte_common.h>
-#include <rte_config.h>
-#include <rte_cycles.h>
-#include <rte_debug.h>
-#include <rte_dev.h>
-#include <rte_errno.h>
-#include <rte_io.h>
-#include <rte_kvargs.h>
-#include <rte_log.h>
-#include <rte_malloc.h>
-#include <rte_mbuf.h>
-#include <rte_power_intrinsics.h>
-#include <rte_prefetch.h>
-#include <rte_ring.h>
-#include <rte_string_fns.h>
-
-#include <rte_eventdev.h>
-#include <eventdev_pmd.h>
-
-#include "dlb_priv.h"
-#include "dlb_iface.h"
-#include "dlb_inline_fns.h"
-
-/*
- * Resources exposed to eventdev.
- */
-#if (RTE_EVENT_MAX_QUEUES_PER_DEV > UINT8_MAX)
-#error "RTE_EVENT_MAX_QUEUES_PER_DEV cannot fit in member

max_event_queues"

drivers/event/dlb/dlb.c deleted +0 -186
-#endif
-static struct rte_event_dev_info evdev_dlb_default_info = {
-	.driver_name = "", /* probe will set */
-	.min_dequeue_timeout_ns = DLB_MIN_DEQUEUE_TIMEOUT_NS,
-	.max_dequeue_timeout_ns = DLB_MAX_DEQUEUE_TIMEOUT_NS,
-#if (RTE_EVENT_MAX_QUEUES_PER_DEV < DLB_MAX_NUM_LDB_QUEUES)
-	.max_event_queues = RTE_EVENT_MAX_QUEUES_PER_DEV,
-#else
-	.max_event_queues = DLB_MAX_NUM_LDB_QUEUES,
-#endif
-	.max_event_queue_flows = DLB_MAX_NUM_FLOWS,
-	.max_event_queue_priority_levels = DLB_QID_PRIORITIES,
-	.max_event_priority_levels = DLB_QID_PRIORITIES,
-	.max_event_ports = DLB_MAX_NUM_LDB_PORTS,
-	.max_event_port_dequeue_depth = DLB_MAX_CQ_DEPTH,
-	.max_event_port_enqueue_depth = DLB_MAX_ENQUEUE_DEPTH,
-	.max_event_port_links = DLB_MAX_NUM_QIDS_PER_LDB_CQ,
-	.max_num_events = DLB_MAX_NUM_LDB_CREDITS,
-	.max_single_link_event_port_queue_pairs = DLB_MAX_NUM_DIR_PORTS,
-	.event_dev_cap = (RTE_EVENT_DEV_CAP_QUEUE_QOS |
-			  RTE_EVENT_DEV_CAP_EVENT_QOS |
-			  RTE_EVENT_DEV_CAP_BURST_MODE |
-			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
-			  RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE |
-			  RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES),
-};
-
-struct process_local_port_data
-dlb_port[DLB_MAX_NUM_PORTS][NUM_DLB_PORT_TYPES];
-
-static inline uint16_t
-dlb_event_enqueue_delayed(void *event_port,
-			  const struct rte_event events[]);
-
-static inline uint16_t
-dlb_event_enqueue_burst_delayed(void *event_port,
-				const struct rte_event events[],
-				uint16_t num);
-
-static inline uint16_t
-dlb_event_enqueue_new_burst_delayed(void *event_port,
-				    const struct rte_event events[],
-				    uint16_t num);
-
-static inline uint16_t
-dlb_event_enqueue_forward_burst_delayed(void *event_port,
-					const struct rte_event events[],
-					uint16_t num);
-
-static int
-dlb_hw_query_resources(struct dlb_eventdev *dlb)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_hw_resource_info *dlb_info = &handle->info;
-	int ret;
-
-	ret = dlb_iface_get_num_resources(handle,
-					  &dlb->hw_rsrc_query_results);
-	if (ret) {
-		DLB_LOG_ERR("get dlb num resources, err=%d\n", ret);
-		return ret;
-	}
-
-	/* Complete filling in device resource info returned to evdev app,
-	 * overriding any default values.
-	 * The capabilities (CAPs) were set at compile time.
-	 */
-
-	evdev_dlb_default_info.max_event_queues =
-		dlb->hw_rsrc_query_results.num_ldb_queues;
-
-	evdev_dlb_default_info.max_event_ports =
-		dlb->hw_rsrc_query_results.num_ldb_ports;
-
-	evdev_dlb_default_info.max_num_events =
-		dlb->hw_rsrc_query_results.max_contiguous_ldb_credits;
-
-	/* Save off values used when creating the scheduling domain. */
-
-	handle->info.num_sched_domains =
-		dlb->hw_rsrc_query_results.num_sched_domains;
-
-	handle->info.hw_rsrc_max.nb_events_limit =
-		dlb->hw_rsrc_query_results.max_contiguous_ldb_credits;
-
-	handle->info.hw_rsrc_max.num_queues =
-		dlb->hw_rsrc_query_results.num_ldb_queues +
-		dlb->hw_rsrc_query_results.num_dir_ports;
-
-	handle->info.hw_rsrc_max.num_ldb_queues =
-		dlb->hw_rsrc_query_results.num_ldb_queues;
-
-	handle->info.hw_rsrc_max.num_ldb_ports =
-		dlb->hw_rsrc_query_results.num_ldb_ports;
-
-	handle->info.hw_rsrc_max.num_dir_ports =
-		dlb->hw_rsrc_query_results.num_dir_ports;
-
-	handle->info.hw_rsrc_max.reorder_window_size =
-		dlb->hw_rsrc_query_results.num_hist_list_entries;
-
-	rte_memcpy(dlb_info, &handle->info.hw_rsrc_max, sizeof(*dlb_info));
-
-	return 0;
-}
-
-static void
-dlb_free_qe_mem(struct dlb_port *qm_port)
-{
-	if (qm_port == NULL)
-		return;
-
-	rte_free(qm_port->qe4);
-	qm_port->qe4 = NULL;
-
-	rte_free(qm_port->consume_qe);
-	qm_port->consume_qe = NULL;
-
-	rte_memzone_free(dlb_port[qm_port->id][PORT_TYPE(qm_port)].mz);
-	dlb_port[qm_port->id][PORT_TYPE(qm_port)].mz = NULL;
-}
-
-static int
-dlb_init_consume_qe(struct dlb_port *qm_port, char *mz_name)
-{
-	struct dlb_cq_pop_qe *qe;
-
-	qe = rte_zmalloc(mz_name,
-			DLB_NUM_QES_PER_CACHE_LINE *
-				sizeof(struct dlb_cq_pop_qe),
-			RTE_CACHE_LINE_SIZE);
-
-	if (qe == NULL)	{
-		DLB_LOG_ERR("dlb: no memory for consume_qe\n");
-		return -ENOMEM;
-	}
-
-	qm_port->consume_qe = qe;
-
-	qe->qe_valid = 0;
-	qe->qe_frag = 0;
-	qe->qe_comp = 0;
-	qe->cq_token = 1;
-	/* Tokens value is 0-based; i.e. '0' returns 1 token, '1' returns 2,
-	 * and so on.
-	 */
-	qe->tokens = 0;	/* set at run time */
-	qe->meas_lat = 0;
-	qe->no_dec = 0;
-	/* Completion IDs are disabled */
-	qe->cmp_id = 0;
-
-	return 0;
-}
-
-static int
-dlb_init_qe_mem(struct dlb_port *qm_port, char *mz_name)
-{
-	int ret, sz;
-
-	sz = DLB_NUM_QES_PER_CACHE_LINE * sizeof(struct dlb_enqueue_qe);
-
-	qm_port->qe4 = rte_zmalloc(mz_name, sz, RTE_CACHE_LINE_SIZE);
-
-	if (qm_port->qe4 == NULL) {
-		DLB_LOG_ERR("dlb: no qe4 memory\n");
-		ret = -ENOMEM;
-		goto error_exit;
-	}
-
-	ret = dlb_init_consume_qe(qm_port, mz_name);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: dlb_init_consume_qe ret=%d\n", ret);
-		goto error_exit;
-	}
-
-	return 0;
-
-error_exit:
-
-	dlb_free_qe_mem(qm_port);
-
-	return ret;
-}
-
-/* Wrapper for string to int conversion. Substituted for atoi(...), which

is
- * unsafe.
- */

drivers/event/dlb/dlb.c deleted +0 -26
-#define DLB_BASE_10 10
-
-static int
-dlb_string_to_int(int *result, const char *str)
-{
-	long ret;
-	char *endstr;
-
-	if (str == NULL || result == NULL)
-		return -EINVAL;
-
-	errno = 0;
-	ret = strtol(str, &endstr, DLB_BASE_10);
-	if (errno)
-		return -errno;
-
-	/* long int and int may be different width for some architectures */
-	if (ret < INT_MIN || ret > INT_MAX || endstr == str)
-		return -EINVAL;
-
-	*result = ret;
-	return 0;
-}
-
-static int
-set_numa_node(const char *key __rte_unused, const char *value, void

*opaque)

drivers/event/dlb/dlb.c deleted +0 -235
-{
-	int *socket_id = opaque;
-	int ret;
-
-	ret = dlb_string_to_int(socket_id, value);
-	if (ret < 0)
-		return ret;
-
-	if (*socket_id > RTE_MAX_NUMA_NODES)
-		return -EINVAL;
-
-	return 0;
-}
-
-static int
-set_max_num_events(const char *key __rte_unused,
-		   const char *value,
-		   void *opaque)
-{
-	int *max_num_events = opaque;
-	int ret;
-
-	if (value == NULL || opaque == NULL) {
-		DLB_LOG_ERR("NULL pointer\n");
-		return -EINVAL;
-	}
-
-	ret = dlb_string_to_int(max_num_events, value);
-	if (ret < 0)
-		return ret;
-
-	if (*max_num_events < 0 || *max_num_events > DLB_MAX_NUM_LDB_CREDITS) {
-		DLB_LOG_ERR("dlb: max_num_events must be between 0 and %d\n",
-			    DLB_MAX_NUM_LDB_CREDITS);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int
-set_num_dir_credits(const char *key __rte_unused,
-		    const char *value,
-		    void *opaque)
-{
-	int *num_dir_credits = opaque;
-	int ret;
-
-	if (value == NULL || opaque == NULL) {
-		DLB_LOG_ERR("NULL pointer\n");
-		return -EINVAL;
-	}
-
-	ret = dlb_string_to_int(num_dir_credits, value);
-	if (ret < 0)
-		return ret;
-
-	if (*num_dir_credits < 0 ||
-	    *num_dir_credits > DLB_MAX_NUM_DIR_CREDITS) {
-		DLB_LOG_ERR("dlb: num_dir_credits must be between 0 and %d\n",
-			    DLB_MAX_NUM_DIR_CREDITS);
-		return -EINVAL;
-	}
-	return 0;
-}
-
-/* VDEV-only notes:
- * This function first unmaps all memory mappings and closes the
- * domain's file descriptor, which causes the driver to reset the
- * scheduling domain. Once that completes (when close() returns), we
- * can safely free the dynamically allocated memory used by the
- * scheduling domain.
- *
- * PF-only notes:
- * We will maintain a use count and use that to determine when
- * a reset is required.  In PF mode, we never mmap, or munmap
- * device memory,  and we own the entire physical PCI device.
- */
-
-static void
-dlb_hw_reset_sched_domain(const struct rte_eventdev *dev, bool reconfig)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	enum dlb_configuration_state config_state;
-	int i, j;
-
-	/* Close and reset the domain */
-	dlb_iface_domain_close(dlb);
-
-	/* Free all dynamically allocated port memory */
-	for (i = 0; i < dlb->num_ports; i++)
-		dlb_free_qe_mem(&dlb->ev_ports[i].qm_port);
-
-	/* If reconfiguring, mark the device's queues and ports as "previously
-	 * configured." If the user does not reconfigure them, the PMD will
-	 * reapply their previous configuration when the device is started.
-	 */
-	config_state = (reconfig) ? DLB_PREV_CONFIGURED : DLB_NOT_CONFIGURED;
-
-	for (i = 0; i < dlb->num_ports; i++) {
-		dlb->ev_ports[i].qm_port.config_state = config_state;
-		/* Reset setup_done so ports can be reconfigured */
-		dlb->ev_ports[i].setup_done = false;
-		for (j = 0; j < DLB_MAX_NUM_QIDS_PER_LDB_CQ; j++)
-			dlb->ev_ports[i].link[j].mapped = false;
-	}
-
-	for (i = 0; i < dlb->num_queues; i++)
-		dlb->ev_queues[i].qm_queue.config_state = config_state;
-
-	for (i = 0; i < DLB_MAX_NUM_QUEUES; i++)
-		dlb->ev_queues[i].setup_done = false;
-
-	dlb->num_ports = 0;
-	dlb->num_ldb_ports = 0;
-	dlb->num_dir_ports = 0;
-	dlb->num_queues = 0;
-	dlb->num_ldb_queues = 0;
-	dlb->num_dir_queues = 0;
-	dlb->configured = false;
-}
-
-static int
-dlb_ldb_credit_pool_create(struct dlb_hw_dev *handle)
-{
-	struct dlb_create_ldb_pool_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	if (handle == NULL)
-		return -EINVAL;
-
-	if (!handle->cfg.resources.num_ldb_credits) {
-		handle->cfg.ldb_credit_pool_id = 0;
-		handle->cfg.num_ldb_credits = 0;
-		return 0;
-	}
-
-	cfg.response = (uintptr_t)&response;
-	cfg.num_ldb_credits = handle->cfg.resources.num_ldb_credits;
-
-	ret = dlb_iface_ldb_credit_pool_create(handle,
-					       &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: ldb_credit_pool_create ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-	}
-
-	handle->cfg.ldb_credit_pool_id = response.id;
-	handle->cfg.num_ldb_credits = cfg.num_ldb_credits;
-
-	return ret;
-}
-
-static int
-dlb_dir_credit_pool_create(struct dlb_hw_dev *handle)
-{
-	struct dlb_create_dir_pool_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	if (handle == NULL)
-		return -EINVAL;
-
-	if (!handle->cfg.resources.num_dir_credits) {
-		handle->cfg.dir_credit_pool_id = 0;
-		handle->cfg.num_dir_credits = 0;
-		return 0;
-	}
-
-	cfg.response = (uintptr_t)&response;
-	cfg.num_dir_credits = handle->cfg.resources.num_dir_credits;
-
-	ret = dlb_iface_dir_credit_pool_create(handle, &cfg);
-	if (ret < 0)
-		DLB_LOG_ERR("dlb: dir_credit_pool_create ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-
-	handle->cfg.dir_credit_pool_id = response.id;
-	handle->cfg.num_dir_credits = cfg.num_dir_credits;
-
-	return ret;
-}
-
-static int
-dlb_hw_create_sched_domain(struct dlb_hw_dev *handle,
-			   struct dlb_eventdev *dlb,
-			   const struct dlb_hw_rsrcs *resources_asked)
-{
-	int ret = 0;
-	struct dlb_create_sched_domain_args *config_params;
-	struct dlb_cmd_response response;
-
-	if (resources_asked == NULL) {
-		DLB_LOG_ERR("dlb: dlb_create NULL parameter\n");
-		ret = EINVAL;
-		goto error_exit;
-	}
-
-	/* Map generic qm resources to dlb resources */
-	config_params = &handle->cfg.resources;
-
-	config_params->response = (uintptr_t)&response;
-
-	/* DIR ports and queues */
-
-	config_params->num_dir_ports =
-		resources_asked->num_dir_ports;
-
-	config_params->num_dir_credits =
-		resources_asked->num_dir_credits;
-
-	/* LDB ports and queues */
-
-	config_params->num_ldb_queues =
-		resources_asked->num_ldb_queues;
-
-	config_params->num_ldb_ports =
-		resources_asked->num_ldb_ports;
-
-	config_params->num_ldb_credits =
-		resources_asked->num_ldb_credits;
-
-	config_params->num_atomic_inflights =
-		dlb->num_atm_inflights_per_queue *
-		config_params->num_ldb_queues;
-
-	config_params->num_hist_list_entries = config_params->num_ldb_ports *
-		DLB_NUM_HIST_LIST_ENTRIES_PER_LDB_PORT;
-
-	/* dlb limited to 1 credit pool per queue type */
-	config_params->num_ldb_credit_pools = 1;
-	config_params->num_dir_credit_pools = 1;
-
-	DLB_LOG_DBG("sched domain create - ldb_qs=%d, ldb_ports=%d, dir_ports=%d,

atomic_inflights=%d, hist_list_entries=%d, ldb_credits=%d, dir_credits=%d, ldb_cred_pools=%d, dir-credit_pools=%d\n",

drivers/event/dlb/dlb.c deleted +0 -15
-		    config_params->num_ldb_queues,
-		    config_params->num_ldb_ports,
-		    config_params->num_dir_ports,
-		    config_params->num_atomic_inflights,
-		    config_params->num_hist_list_entries,
-		    config_params->num_ldb_credits,
-		    config_params->num_dir_credits,
-		    config_params->num_ldb_credit_pools,
-		    config_params->num_dir_credit_pools);
-
-	/* Configure the QM */
-
-	ret = dlb_iface_sched_domain_create(handle, config_params);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: domain create failed, device_id = %d, (driver ret = %d,

extra status: %s)\n",

drivers/event/dlb/dlb.c deleted +0 -90
-			    handle->device_id,
-			    ret,
-			    dlb_error_strings[response.status]);
-		goto error_exit;
-	}
-
-	handle->domain_id = response.id;
-	handle->domain_id_valid = 1;
-
-	config_params->response = 0;
-
-	ret = dlb_ldb_credit_pool_create(handle);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: create ldb credit pool failed\n");
-		goto error_exit2;
-	}
-
-	ret = dlb_dir_credit_pool_create(handle);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: create dir credit pool failed\n");
-		goto error_exit2;
-	}
-
-	handle->cfg.configured = true;
-
-	return 0;
-
-error_exit2:
-	dlb_iface_domain_close(dlb);
-
-error_exit:
-	return ret;
-}
-
-/* End HW specific */
-static void
-dlb_eventdev_info_get(struct rte_eventdev *dev,
-		      struct rte_event_dev_info *dev_info)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	int ret;
-
-	ret = dlb_hw_query_resources(dlb);
-	if (ret) {
-		const struct rte_eventdev_data *data = dev->data;
-
-		DLB_LOG_ERR("get resources err=%d, devid=%d\n",
-			    ret, data->dev_id);
-		/* fn is void, so fall through and return values set up in
-		 * probe
-		 */
-	}
-
-	/* Add num resources currently owned by this domain.
-	 * These would become available if the scheduling domain were reset due
-	 * to the application recalling eventdev_configure to *reconfigure* the
-	 * domain.
-	 */
-	evdev_dlb_default_info.max_event_ports += dlb->num_ldb_ports;
-	evdev_dlb_default_info.max_event_queues += dlb->num_ldb_queues;
-	evdev_dlb_default_info.max_num_events += dlb->num_ldb_credits;
-
-	/* In DLB A-stepping hardware, applications are limited to 128
-	 * configured ports (load-balanced or directed). The reported number of
-	 * available ports must reflect this.
-	 */
-	if (dlb->revision < DLB_REV_B0) {
-		int used_ports;
-
-		used_ports = DLB_MAX_NUM_LDB_PORTS + DLB_MAX_NUM_DIR_PORTS -
-			dlb->hw_rsrc_query_results.num_ldb_ports -
-			dlb->hw_rsrc_query_results.num_dir_ports;
-
-		evdev_dlb_default_info.max_event_ports =
-			RTE_MIN(evdev_dlb_default_info.max_event_ports,
-				128 - used_ports);
-	}
-
-	evdev_dlb_default_info.max_event_queues =
-		RTE_MIN(evdev_dlb_default_info.max_event_queues,
-			RTE_EVENT_MAX_QUEUES_PER_DEV);
-
-	evdev_dlb_default_info.max_num_events =
-		RTE_MIN(evdev_dlb_default_info.max_num_events,
-			dlb->max_num_events_override);
-
-	*dev_info = evdev_dlb_default_info;
-}
-
-/* Note: 1 QM instance per QM device, QM instance/device == event device

*/

drivers/event/dlb/dlb.c deleted +0 -26
-static int
-dlb_eventdev_configure(const struct rte_eventdev *dev)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_hw_rsrcs *rsrcs = &handle->info.hw_rsrc_max;
-	const struct rte_eventdev_data *data = dev->data;
-	const struct rte_event_dev_config *config = &data->dev_conf;
-	int ret;
-
-	/* If this eventdev is already configured, we must release the current
-	 * scheduling domain before attempting to configure a new one.
-	 */
-	if (dlb->configured) {
-		dlb_hw_reset_sched_domain(dev, true);
-
-		ret = dlb_hw_query_resources(dlb);
-		if (ret) {
-			DLB_LOG_ERR("get resources err=%d, devid=%d\n",
-				    ret, data->dev_id);
-			return ret;
-		}
-	}
-
-	if (config->nb_event_queues > rsrcs->num_queues) {
-		DLB_LOG_ERR("nb_event_queues parameter (%d) exceeds the QM device's

capabilities (%d).\n",

drivers/event/dlb/dlb.c deleted +0 -7
-			    config->nb_event_queues,
-			    rsrcs->num_queues);
-		return -EINVAL;
-	}
-	if (config->nb_event_ports > (rsrcs->num_ldb_ports
-			+ rsrcs->num_dir_ports)) {
-		DLB_LOG_ERR("nb_event_ports parameter (%d) exceeds the QM device's

capabilities (%d).\n",

drivers/event/dlb/dlb.c deleted +0 -6
-			    config->nb_event_ports,
-			    (rsrcs->num_ldb_ports + rsrcs->num_dir_ports));
-		return -EINVAL;
-	}
-	if (config->nb_events_limit > rsrcs->nb_events_limit) {
-		DLB_LOG_ERR("nb_events_limit parameter (%d) exceeds the QM device's

capabilities (%d).\n",

drivers/event/dlb/dlb.c deleted +0 -23
-			    config->nb_events_limit,
-			    rsrcs->nb_events_limit);
-		return -EINVAL;
-	}
-
-	if (config->event_dev_cfg & RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT)
-		dlb->global_dequeue_wait = false;
-	else {
-		uint32_t timeout32;
-
-		dlb->global_dequeue_wait = true;
-
-		timeout32 = config->dequeue_timeout_ns;
-
-		dlb->global_dequeue_wait_ticks =
-			timeout32 * (rte_get_timer_hz() / 1E9);
-	}
-
-	/* Does this platform support umonitor/umwait? */
-	if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_WAITPKG)) {
-		if (RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE != 0 &&
-		    RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE != 1) {
-			DLB_LOG_ERR("invalid value (%d) for RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE

must be 0 or 1.\n",

drivers/event/dlb/dlb.c deleted +0 -306
-				    RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE);
-			return -EINVAL;
-		}
-		dlb->umwait_allowed = true;
-	}
-
-	rsrcs->num_dir_ports = config->nb_single_link_event_port_queues;
-	rsrcs->num_ldb_ports = config->nb_event_ports - rsrcs->num_dir_ports;
-	/* 1 dir queue per dir port */
-	rsrcs->num_ldb_queues = config->nb_event_queues - rsrcs->num_dir_ports;
-
-	/* Scale down nb_events_limit by 4 for directed credits, since there
-	 * are 4x as many load-balanced credits.
-	 */
-	rsrcs->num_ldb_credits = 0;
-	rsrcs->num_dir_credits = 0;
-
-	if (rsrcs->num_ldb_queues)
-		rsrcs->num_ldb_credits = config->nb_events_limit;
-	if (rsrcs->num_dir_ports)
-		rsrcs->num_dir_credits = config->nb_events_limit / 4;
-	if (dlb->num_dir_credits_override != -1)
-		rsrcs->num_dir_credits = dlb->num_dir_credits_override;
-
-	if (dlb_hw_create_sched_domain(handle, dlb, rsrcs) < 0) {
-		DLB_LOG_ERR("dlb_hw_create_sched_domain failed\n");
-		return -ENODEV;
-	}
-
-	dlb->new_event_limit = config->nb_events_limit;
-	__atomic_store_n(&dlb->inflights, 0, __ATOMIC_SEQ_CST);
-
-	/* Save number of ports/queues for this event dev */
-	dlb->num_ports = config->nb_event_ports;
-	dlb->num_queues = config->nb_event_queues;
-	dlb->num_dir_ports = rsrcs->num_dir_ports;
-	dlb->num_ldb_ports = dlb->num_ports - dlb->num_dir_ports;
-	dlb->num_ldb_queues = dlb->num_queues - dlb->num_dir_ports;
-	dlb->num_dir_queues = dlb->num_dir_ports;
-	dlb->num_ldb_credits = rsrcs->num_ldb_credits;
-	dlb->num_dir_credits = rsrcs->num_dir_credits;
-
-	dlb->configured = true;
-
-	return 0;
-}
-
-static int16_t
-dlb_hw_unmap_ldb_qid_from_port(struct dlb_hw_dev *handle,
-			       uint32_t qm_port_id,
-			       uint16_t qm_qid)
-{
-	struct dlb_unmap_qid_args cfg;
-	struct dlb_cmd_response response;
-	int32_t ret;
-
-	if (handle == NULL)
-		return -EINVAL;
-
-	cfg.response = (uintptr_t)&response;
-	cfg.port_id = qm_port_id;
-	cfg.qid = qm_qid;
-
-	ret = dlb_iface_unmap_qid(handle, &cfg);
-	if (ret < 0)
-		DLB_LOG_ERR("dlb: unmap qid error, ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-
-	return ret;
-}
-
-static int
-dlb_event_queue_detach_ldb(struct dlb_eventdev *dlb,
-			   struct dlb_eventdev_port *ev_port,
-			   struct dlb_eventdev_queue *ev_queue)
-{
-	int ret, i;
-
-	/* Don't unlink until start time. */
-	if (dlb->run_state == DLB_RUN_STATE_STOPPED)
-		return 0;
-
-	for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
-		if (ev_port->link[i].valid &&
-		    ev_port->link[i].queue_id == ev_queue->id)
-			break; /* found */
-	}
-
-	/* This is expected with eventdev API!
-	 * It blindly attempts to unmap all queues.
-	 */
-	if (i == DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
-		DLB_LOG_DBG("dlb: ignoring LB QID %d not mapped for qm_port %d.\n",
-			    ev_queue->qm_queue.id,
-			    ev_port->qm_port.id);
-		return 0;
-	}
-
-	ret = dlb_hw_unmap_ldb_qid_from_port(&dlb->qm_instance,
-					     ev_port->qm_port.id,
-					     ev_queue->qm_queue.id);
-	if (!ret)
-		ev_port->link[i].mapped = false;
-
-	return ret;
-}
-
-static int
-dlb_eventdev_port_unlink(struct rte_eventdev *dev, void *event_port,
-			 uint8_t queues[], uint16_t nb_unlinks)
-{
-	struct dlb_eventdev_port *ev_port = event_port;
-	struct dlb_eventdev *dlb;
-	int i;
-
-	RTE_SET_USED(dev);
-
-	if (!ev_port->setup_done) {
-		DLB_LOG_ERR("dlb: evport %d is not configured\n",
-			    ev_port->id);
-		rte_errno = -EINVAL;
-		return 0;
-	}
-
-	if (queues == NULL || nb_unlinks == 0) {
-		DLB_LOG_DBG("dlb: queues is NULL or nb_unlinks is 0\n");
-		return 0; /* Ignore and return success */
-	}
-
-	if (ev_port->qm_port.is_directed) {
-		DLB_LOG_DBG("dlb: ignore unlink from dir port %d\n",
-			    ev_port->id);
-		rte_errno = 0;
-		return nb_unlinks; /* as if success */
-	}
-
-	dlb = ev_port->dlb;
-
-	for (i = 0; i < nb_unlinks; i++) {
-		struct dlb_eventdev_queue *ev_queue;
-		int ret, j;
-
-		if (queues[i] >= dlb->num_queues) {
-			DLB_LOG_ERR("dlb: invalid queue id %d\n", queues[i]);
-			rte_errno = -EINVAL;
-			return i; /* return index of offending queue */
-		}
-
-		ev_queue = &dlb->ev_queues[queues[i]];
-
-		/* Does a link exist? */
-		for (j = 0; j < DLB_MAX_NUM_QIDS_PER_LDB_CQ; j++)
-			if (ev_port->link[j].queue_id == queues[i] &&
-			    ev_port->link[j].valid)
-				break;
-
-		if (j == DLB_MAX_NUM_QIDS_PER_LDB_CQ)
-			continue;
-
-		ret = dlb_event_queue_detach_ldb(dlb, ev_port, ev_queue);
-		if (ret) {
-			DLB_LOG_ERR("unlink err=%d for port %d queue %d\n",
-				    ret, ev_port->id, queues[i]);
-			rte_errno = -ENOENT;
-			return i; /* return index of offending queue */
-		}
-
-		ev_port->link[j].valid = false;
-		ev_port->num_links--;
-		ev_queue->num_links--;
-	}
-
-	return nb_unlinks;
-}
-
-static int
-dlb_eventdev_port_unlinks_in_progress(struct rte_eventdev *dev,
-				      void *event_port)
-{
-	struct dlb_eventdev_port *ev_port = event_port;
-	struct dlb_eventdev *dlb;
-	struct dlb_hw_dev *handle;
-	struct dlb_pending_port_unmaps_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	RTE_SET_USED(dev);
-
-	if (!ev_port->setup_done) {
-		DLB_LOG_ERR("dlb: evport %d is not configured\n",
-			    ev_port->id);
-		rte_errno = -EINVAL;
-		return 0;
-	}
-
-	cfg.port_id = ev_port->qm_port.id;
-	cfg.response = (uintptr_t)&response;
-	dlb = ev_port->dlb;
-	handle = &dlb->qm_instance;
-	ret = dlb_iface_pending_port_unmaps(handle, &cfg);
-
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: num_unlinks_in_progress ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		return ret;
-	}
-
-	return response.id;
-}
-
-static void
-dlb_eventdev_port_default_conf_get(struct rte_eventdev *dev,
-				   uint8_t port_id,
-				   struct rte_event_port_conf *port_conf)
-{
-	RTE_SET_USED(port_id);
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-
-	port_conf->new_event_threshold = dlb->new_event_limit;
-	port_conf->dequeue_depth = 32;
-	port_conf->enqueue_depth = DLB_MAX_ENQUEUE_DEPTH;
-	port_conf->event_port_cfg = 0;
-}
-
-static void
-dlb_eventdev_queue_default_conf_get(struct rte_eventdev *dev,
-				    uint8_t queue_id,
-				    struct rte_event_queue_conf *queue_conf)
-{
-	RTE_SET_USED(dev);
-	RTE_SET_USED(queue_id);
-	queue_conf->nb_atomic_flows = 1024;
-	queue_conf->nb_atomic_order_sequences = 32;
-	queue_conf->event_queue_cfg = 0;
-	queue_conf->priority = 0;
-}
-
-static int
-dlb_hw_create_ldb_port(struct dlb_eventdev *dlb,
-		       struct dlb_eventdev_port *ev_port,
-		       uint32_t dequeue_depth,
-		       uint32_t cq_depth,
-		       uint32_t enqueue_depth,
-		       uint16_t rsvd_tokens,
-		       bool use_rsvd_token_scheme)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_create_ldb_port_args cfg = {0};
-	struct dlb_cmd_response response = {0};
-	int ret;
-	struct dlb_port *qm_port = NULL;
-	char mz_name[RTE_MEMZONE_NAMESIZE];
-	uint32_t qm_port_id;
-
-	if (handle == NULL)
-		return -EINVAL;
-
-	if (cq_depth < DLB_MIN_LDB_CQ_DEPTH) {
-		DLB_LOG_ERR("dlb: invalid cq_depth, must be %d-%d\n",
-			DLB_MIN_LDB_CQ_DEPTH, DLB_MAX_INPUT_QUEUE_DEPTH);
-		return -EINVAL;
-	}
-
-	if (enqueue_depth < DLB_MIN_ENQUEUE_DEPTH) {
-		DLB_LOG_ERR("dlb: invalid enqueue_depth, must be at least %d\n",
-			    DLB_MIN_ENQUEUE_DEPTH);
-		return -EINVAL;
-	}
-
-	rte_spinlock_lock(&handle->resource_lock);
-
-	cfg.response = (uintptr_t)&response;
-
-	/* We round up to the next power of 2 if necessary */
-	cfg.cq_depth = rte_align32pow2(cq_depth);
-	cfg.cq_depth_threshold = rsvd_tokens;
-
-	cfg.cq_history_list_size = DLB_NUM_HIST_LIST_ENTRIES_PER_LDB_PORT;
-
-	/* User controls the LDB high watermark via enqueue depth. The DIR high
-	 * watermark is equal, unless the directed credit pool is too small.
-	 */
-	cfg.ldb_credit_high_watermark = enqueue_depth;
-
-	/* If there are no directed ports, the kernel driver will ignore this
-	 * port's directed credit settings. Don't use enqueue_depth if it would
-	 * require more directed credits than are available.
-	 */
-	cfg.dir_credit_high_watermark =
-		RTE_MIN(enqueue_depth,
-			handle->cfg.num_dir_credits / dlb->num_ports);
-
-	cfg.ldb_credit_quantum = cfg.ldb_credit_high_watermark / 2;
-	cfg.ldb_credit_low_watermark = RTE_MIN(16, cfg.ldb_credit_quantum);
-
-	cfg.dir_credit_quantum = cfg.dir_credit_high_watermark / 2;
-	cfg.dir_credit_low_watermark = RTE_MIN(16, cfg.dir_credit_quantum);
-
-	/* Per QM values */
-
-	cfg.ldb_credit_pool_id = handle->cfg.ldb_credit_pool_id;
-	cfg.dir_credit_pool_id = handle->cfg.dir_credit_pool_id;
-
-	ret = dlb_iface_ldb_port_create(handle, &cfg, dlb->poll_mode);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: dlb_ldb_port_create error, ret=%d (driver status:

%s)\n",

drivers/event/dlb/dlb.c deleted +0 -98
-			    ret, dlb_error_strings[response.status]);
-		goto error_exit;
-	}
-
-	qm_port_id = response.id;
-
-	DLB_LOG_DBG("dlb: ev_port %d uses qm LB port %d <<<<<\n",
-		    ev_port->id, qm_port_id);
-
-	qm_port = &ev_port->qm_port;
-	qm_port->ev_port = ev_port; /* back ptr */
-	qm_port->dlb = dlb; /* back ptr */
-
-	/*
-	 * Allocate and init local qe struct(s).
-	 * Note: MOVDIR64 requires the enqueue QE (qe4) to be aligned.
-	 */
-
-	snprintf(mz_name, sizeof(mz_name), "ldb_port%d",
-		 ev_port->id);
-
-	ret = dlb_init_qe_mem(qm_port, mz_name);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: init_qe_mem failed, ret=%d\n", ret);
-		goto error_exit;
-	}
-
-	qm_port->pp_mmio_base = DLB_LDB_PP_BASE + PAGE_SIZE * qm_port_id;
-	qm_port->id = qm_port_id;
-
-	/* The credit window is one high water mark of QEs */
-	qm_port->ldb_pushcount_at_credit_expiry = 0;
-	qm_port->cached_ldb_credits = cfg.ldb_credit_high_watermark;
-	/* The credit window is one high water mark of QEs */
-	qm_port->dir_pushcount_at_credit_expiry = 0;
-	qm_port->cached_dir_credits = cfg.dir_credit_high_watermark;
-	/* CQs with depth < 8 use an 8-entry queue, but withhold credits so
-	 * the effective depth is smaller.
-	 */
-	qm_port->cq_depth = cfg.cq_depth <= 8 ? 8 : cfg.cq_depth;
-	qm_port->cq_idx = 0;
-	qm_port->cq_idx_unmasked = 0;
-	if (dlb->poll_mode == DLB_CQ_POLL_MODE_SPARSE)
-		qm_port->cq_depth_mask = (qm_port->cq_depth * 4) - 1;
-	else
-		qm_port->cq_depth_mask = qm_port->cq_depth - 1;
-
-	qm_port->gen_bit_shift = __builtin_popcount(qm_port->cq_depth_mask);
-	/* starting value of gen bit - it toggles at wrap time */
-	qm_port->gen_bit = 1;
-
-	qm_port->use_rsvd_token_scheme = use_rsvd_token_scheme;
-	qm_port->cq_rsvd_token_deficit = rsvd_tokens;
-	qm_port->int_armed = false;
-
-	/* Save off for later use in info and lookup APIs. */
-	qm_port->qid_mappings = &dlb->qm_ldb_to_ev_queue_id[0];
-
-	qm_port->dequeue_depth = dequeue_depth;
-
-	/* When using the reserved token scheme, token_pop_thresh is
-	 * initially 2 * dequeue_depth. Once the tokens are reserved,
-	 * the enqueue code re-assigns it to dequeue_depth.
-	 */
-	qm_port->token_pop_thresh = cq_depth;
-
-	/* When the deferred scheduling vdev arg is selected, use deferred pop
-	 * for all single-entry CQs.
-	 */
-	if (cfg.cq_depth == 1 || (cfg.cq_depth == 2 && use_rsvd_token_scheme)) {
-		if (dlb->defer_sched)
-			qm_port->token_pop_mode = DEFERRED_POP;
-	}
-
-	/* The default enqueue functions do not include delayed-pop support for
-	 * performance reasons.
-	 */
-	if (qm_port->token_pop_mode == DELAYED_POP) {
-		dlb->event_dev->enqueue = dlb_event_enqueue_delayed;
-		dlb->event_dev->enqueue_burst =
-			dlb_event_enqueue_burst_delayed;
-		dlb->event_dev->enqueue_new_burst =
-			dlb_event_enqueue_new_burst_delayed;
-		dlb->event_dev->enqueue_forward_burst =
-			dlb_event_enqueue_forward_burst_delayed;
-	}
-
-	qm_port->owed_tokens = 0;
-	qm_port->issued_releases = 0;
-
-	/* update state */
-	qm_port->state = PORT_STARTED; /* enabled at create time */
-	qm_port->config_state = DLB_CONFIGURED;
-
-	qm_port->dir_credits = cfg.dir_credit_high_watermark;
-	qm_port->ldb_credits = cfg.ldb_credit_high_watermark;
-
-	DLB_LOG_DBG("dlb: created ldb port %d, depth = %d, ldb credits=%d, dir

credits=%d\n",

drivers/event/dlb/dlb.c deleted +0 -91
-		    qm_port_id,
-		    cq_depth,
-		    qm_port->ldb_credits,
-		    qm_port->dir_credits);
-
-	rte_spinlock_unlock(&handle->resource_lock);
-
-	return 0;
-
-error_exit:
-	if (qm_port) {
-		dlb_free_qe_mem(qm_port);
-		qm_port->pp_mmio_base = 0;
-	}
-
-	rte_spinlock_unlock(&handle->resource_lock);
-
-	DLB_LOG_ERR("dlb: create ldb port failed!\n");
-
-	return ret;
-}
-
-static int
-dlb_hw_create_dir_port(struct dlb_eventdev *dlb,
-		       struct dlb_eventdev_port *ev_port,
-		       uint32_t dequeue_depth,
-		       uint32_t cq_depth,
-		       uint32_t enqueue_depth,
-		       uint16_t rsvd_tokens,
-		       bool use_rsvd_token_scheme)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_create_dir_port_args cfg = {0};
-	struct dlb_cmd_response response = {0};
-	int ret;
-	struct dlb_port *qm_port = NULL;
-	char mz_name[RTE_MEMZONE_NAMESIZE];
-	uint32_t qm_port_id;
-
-	if (dlb == NULL || handle == NULL)
-		return -EINVAL;
-
-	if (cq_depth < DLB_MIN_DIR_CQ_DEPTH) {
-		DLB_LOG_ERR("dlb: invalid cq_depth, must be at least %d\n",
-			    DLB_MIN_DIR_CQ_DEPTH);
-		return -EINVAL;
-	}
-
-	if (enqueue_depth < DLB_MIN_ENQUEUE_DEPTH) {
-		DLB_LOG_ERR("dlb: invalid enqueue_depth, must be at least %d\n",
-			    DLB_MIN_ENQUEUE_DEPTH);
-		return -EINVAL;
-	}
-
-	rte_spinlock_lock(&handle->resource_lock);
-
-	/* Directed queues are configured at link time. */
-	cfg.queue_id = -1;
-
-	cfg.response = (uintptr_t)&response;
-
-	/* We round up to the next power of 2 if necessary */
-	cfg.cq_depth = rte_align32pow2(cq_depth);
-	cfg.cq_depth_threshold = rsvd_tokens;
-
-	/* User controls the LDB high watermark via enqueue depth. The DIR high
-	 * watermark is equal, unless the directed credit pool is too small.
-	 */
-	cfg.ldb_credit_high_watermark = enqueue_depth;
-
-	/* Don't use enqueue_depth if it would require more directed credits
-	 * than are available.
-	 */
-	cfg.dir_credit_high_watermark =
-		RTE_MIN(enqueue_depth,
-			handle->cfg.num_dir_credits / dlb->num_ports);
-
-	cfg.ldb_credit_quantum = cfg.ldb_credit_high_watermark / 2;
-	cfg.ldb_credit_low_watermark = RTE_MIN(16, cfg.ldb_credit_quantum);
-
-	cfg.dir_credit_quantum = cfg.dir_credit_high_watermark / 2;
-	cfg.dir_credit_low_watermark = RTE_MIN(16, cfg.dir_credit_quantum);
-
-	/* Per QM values */
-
-	cfg.ldb_credit_pool_id = handle->cfg.ldb_credit_pool_id;
-	cfg.dir_credit_pool_id = handle->cfg.dir_credit_pool_id;
-
-	ret = dlb_iface_dir_port_create(handle, &cfg, dlb->poll_mode);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: dlb_dir_port_create error, ret=%d (driver status:

%s)\n",

drivers/event/dlb/dlb.c deleted +0 -129
-			    ret, dlb_error_strings[response.status]);
-		goto error_exit;
-	}
-
-	qm_port_id = response.id;
-
-	DLB_LOG_DBG("dlb: ev_port %d uses qm DIR port %d <<<<<\n",
-		    ev_port->id, qm_port_id);
-
-	qm_port = &ev_port->qm_port;
-	qm_port->ev_port = ev_port; /* back ptr */
-	qm_port->dlb = dlb;  /* back ptr */
-
-	/*
-	 * Init local qe struct(s).
-	 * Note: MOVDIR64 requires the enqueue QE to be aligned
-	 */
-
-	snprintf(mz_name, sizeof(mz_name), "dir_port%d",
-		 ev_port->id);
-
-	ret = dlb_init_qe_mem(qm_port, mz_name);
-
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: init_qe_mem failed, ret=%d\n", ret);
-		goto error_exit;
-	}
-
-	qm_port->pp_mmio_base = DLB_DIR_PP_BASE + PAGE_SIZE * qm_port_id;
-	qm_port->id = qm_port_id;
-
-	/* The credit window is one high water mark of QEs */
-	qm_port->ldb_pushcount_at_credit_expiry = 0;
-	qm_port->cached_ldb_credits = cfg.ldb_credit_high_watermark;
-	/* The credit window is one high water mark of QEs */
-	qm_port->dir_pushcount_at_credit_expiry = 0;
-	qm_port->cached_dir_credits = cfg.dir_credit_high_watermark;
-	qm_port->cq_depth = cfg.cq_depth;
-	qm_port->cq_idx = 0;
-	qm_port->cq_idx_unmasked = 0;
-	if (dlb->poll_mode == DLB_CQ_POLL_MODE_SPARSE)
-		qm_port->cq_depth_mask = (cfg.cq_depth * 4) - 1;
-	else
-		qm_port->cq_depth_mask = cfg.cq_depth - 1;
-
-	qm_port->gen_bit_shift = __builtin_popcount(qm_port->cq_depth_mask);
-	/* starting value of gen bit - it toggles at wrap time */
-	qm_port->gen_bit = 1;
-
-	qm_port->use_rsvd_token_scheme = use_rsvd_token_scheme;
-	qm_port->cq_rsvd_token_deficit = rsvd_tokens;
-	qm_port->int_armed = false;
-
-	/* Save off for later use in info and lookup APIs. */
-	qm_port->qid_mappings = &dlb->qm_dir_to_ev_queue_id[0];
-
-	qm_port->dequeue_depth = dequeue_depth;
-
-	/* Directed ports are auto-pop, by default. */
-	qm_port->token_pop_mode = AUTO_POP;
-	qm_port->owed_tokens = 0;
-	qm_port->issued_releases = 0;
-
-	/* update state */
-	qm_port->state = PORT_STARTED; /* enabled at create time */
-	qm_port->config_state = DLB_CONFIGURED;
-
-	qm_port->dir_credits = cfg.dir_credit_high_watermark;
-	qm_port->ldb_credits = cfg.ldb_credit_high_watermark;
-
-	DLB_LOG_DBG("dlb: created dir port %d, depth = %d cr=%d,%d\n",
-		    qm_port_id,
-		    cq_depth,
-		    cfg.dir_credit_high_watermark,
-		    cfg.ldb_credit_high_watermark);
-
-	rte_spinlock_unlock(&handle->resource_lock);
-
-	return 0;
-
-error_exit:
-	if (qm_port) {
-		qm_port->pp_mmio_base = 0;
-		dlb_free_qe_mem(qm_port);
-	}
-
-	rte_spinlock_unlock(&handle->resource_lock);
-
-	DLB_LOG_ERR("dlb: create dir port failed!\n");
-
-	return ret;
-}
-
-static int32_t
-dlb_hw_create_ldb_queue(struct dlb_eventdev *dlb,
-			struct dlb_queue *queue,
-			const struct rte_event_queue_conf *evq_conf)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_create_ldb_queue_args cfg;
-	struct dlb_cmd_response response;
-	int32_t ret;
-	uint32_t qm_qid;
-	int sched_type = -1;
-
-	if (evq_conf == NULL)
-		return -EINVAL;
-
-	if (evq_conf->event_queue_cfg & RTE_EVENT_QUEUE_CFG_ALL_TYPES) {
-		if (evq_conf->nb_atomic_order_sequences != 0)
-			sched_type = RTE_SCHED_TYPE_ORDERED;
-		else
-			sched_type = RTE_SCHED_TYPE_PARALLEL;
-	} else
-		sched_type = evq_conf->schedule_type;
-
-	cfg.response = (uintptr_t)&response;
-	cfg.num_atomic_inflights = dlb->num_atm_inflights_per_queue;
-	cfg.num_sequence_numbers = evq_conf->nb_atomic_order_sequences;
-	cfg.num_qid_inflights = evq_conf->nb_atomic_order_sequences;
-
-	if (sched_type != RTE_SCHED_TYPE_ORDERED) {
-		cfg.num_sequence_numbers = 0;
-		cfg.num_qid_inflights = DLB_DEF_UNORDERED_QID_INFLIGHTS;
-	}
-
-	ret = dlb_iface_ldb_queue_create(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: create LB event queue error, ret=%d (driver status:

%s)\n",

drivers/event/dlb/dlb.c deleted +0 -14
-			    ret, dlb_error_strings[response.status]);
-		return -EINVAL;
-	}
-
-	qm_qid = response.id;
-
-	/* Save off queue config for debug, resource lookups, and reconfig */
-	queue->num_qid_inflights = cfg.num_qid_inflights;
-	queue->num_atm_inflights = cfg.num_atomic_inflights;
-
-	queue->sched_type = sched_type;
-	queue->config_state = DLB_CONFIGURED;
-
-	DLB_LOG_DBG("Created LB event queue %d, nb_inflights=%d, nb_seq=%d, qid

inflights=%d\n",

drivers/event/dlb/dlb.c deleted +0 -73
-		    qm_qid,
-		    cfg.num_atomic_inflights,
-		    cfg.num_sequence_numbers,
-		    cfg.num_qid_inflights);
-
-	return qm_qid;
-}
-
-static int32_t
-dlb_get_sn_allocation(struct dlb_eventdev *dlb, int group)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_get_sn_allocation_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	cfg.group = group;
-	cfg.response = (uintptr_t)&response;
-
-	ret = dlb_iface_get_sn_allocation(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: get_sn_allocation ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		return ret;
-	}
-
-	return response.id;
-}
-
-static int
-dlb_set_sn_allocation(struct dlb_eventdev *dlb, int group, int num)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_set_sn_allocation_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	cfg.num = num;
-	cfg.group = group;
-	cfg.response = (uintptr_t)&response;
-
-	ret = dlb_iface_set_sn_allocation(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: set_sn_allocation ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		return ret;
-	}
-
-	return ret;
-}
-
-static int32_t
-dlb_get_sn_occupancy(struct dlb_eventdev *dlb, int group)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_get_sn_occupancy_args cfg;
-	struct dlb_cmd_response response;
-	int ret;
-
-	cfg.group = group;
-	cfg.response = (uintptr_t)&response;
-
-	ret = dlb_iface_get_sn_occupancy(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: get_sn_occupancy ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		return ret;
-	}
-
-	return response.id;
-}
-
-/* Query the current sequence number allocations and, if they conflict with

the
- * requested LDB queue configuration, attempt to re-allocate sequence numbers.
- * This is best-effort; if it fails, the PMD will attempt to configure the
- * load-balanced queue and return an error.
- */

drivers/event/dlb/dlb.c deleted +0 -42
-static void
-dlb_program_sn_allocation(struct dlb_eventdev *dlb,
-			  const struct rte_event_queue_conf *queue_conf)
-{
-	int grp_occupancy[DLB_NUM_SN_GROUPS];
-	int grp_alloc[DLB_NUM_SN_GROUPS];
-	int i, sequence_numbers;
-
-	sequence_numbers = (int)queue_conf->nb_atomic_order_sequences;
-
-	for (i = 0; i < DLB_NUM_SN_GROUPS; i++) {
-		int total_slots;
-
-		grp_alloc[i] = dlb_get_sn_allocation(dlb, i);
-		if (grp_alloc[i] < 0)
-			return;
-
-		total_slots = DLB_MAX_LDB_SN_ALLOC / grp_alloc[i];
-
-		grp_occupancy[i] = dlb_get_sn_occupancy(dlb, i);
-		if (grp_occupancy[i] < 0)
-			return;
-
-		/* DLB has at least one available slot for the requested
-		 * sequence numbers, so no further configuration required.
-		 */
-		if (grp_alloc[i] == sequence_numbers &&
-		    grp_occupancy[i] < total_slots)
-			return;
-	}
-
-	/* None of the sequence number groups are configured for the requested
-	 * sequence numbers, so we have to reconfigure one of them. This is
-	 * only possible if a group is not in use.
-	 */
-	for (i = 0; i < DLB_NUM_SN_GROUPS; i++) {
-		if (grp_occupancy[i] == 0)
-			break;
-	}
-
-	if (i == DLB_NUM_SN_GROUPS) {
-		DLB_LOG_ERR("[%s()] No groups with %d sequence_numbers are available or

have free slots\n",

drivers/event/dlb/dlb.c deleted +0 -443
-		       __func__, sequence_numbers);
-		return;
-	}
-
-	/* Attempt to configure slot i with the requested number of sequence
-	 * numbers. Ignore the return value -- if this fails, the error will be
-	 * caught during subsequent queue configuration.
-	 */
-	dlb_set_sn_allocation(dlb, i, sequence_numbers);
-}
-
-static int
-dlb_eventdev_ldb_queue_setup(struct rte_eventdev *dev,
-			     struct dlb_eventdev_queue *ev_queue,
-			     const struct rte_event_queue_conf *queue_conf)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	int32_t qm_qid;
-
-	if (queue_conf->nb_atomic_order_sequences)
-		dlb_program_sn_allocation(dlb, queue_conf);
-
-	qm_qid = dlb_hw_create_ldb_queue(dlb,
-					 &ev_queue->qm_queue,
-					 queue_conf);
-	if (qm_qid < 0) {
-		DLB_LOG_ERR("Failed to create the load-balanced queue\n");
-
-		return qm_qid;
-	}
-
-	dlb->qm_ldb_to_ev_queue_id[qm_qid] = ev_queue->id;
-
-	ev_queue->qm_queue.id = qm_qid;
-
-	return 0;
-}
-
-static int dlb_num_dir_queues_setup(struct dlb_eventdev *dlb)
-{
-	int i, num = 0;
-
-	for (i = 0; i < dlb->num_queues; i++) {
-		if (dlb->ev_queues[i].setup_done &&
-		    dlb->ev_queues[i].qm_queue.is_directed)
-			num++;
-	}
-
-	return num;
-}
-
-static void
-dlb_queue_link_teardown(struct dlb_eventdev *dlb,
-			struct dlb_eventdev_queue *ev_queue)
-{
-	struct dlb_eventdev_port *ev_port;
-	int i, j;
-
-	for (i = 0; i < dlb->num_ports; i++) {
-		ev_port = &dlb->ev_ports[i];
-
-		for (j = 0; j < DLB_MAX_NUM_QIDS_PER_LDB_CQ; j++) {
-			if (!ev_port->link[j].valid ||
-			    ev_port->link[j].queue_id != ev_queue->id)
-				continue;
-
-			ev_port->link[j].valid = false;
-			ev_port->num_links--;
-		}
-	}
-
-	ev_queue->num_links = 0;
-}
-
-static int
-dlb_eventdev_queue_setup(struct rte_eventdev *dev,
-			 uint8_t ev_qid,
-			 const struct rte_event_queue_conf *queue_conf)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	struct dlb_eventdev_queue *ev_queue;
-	int ret;
-
-	if (queue_conf == NULL)
-		return -EINVAL;
-
-	if (ev_qid >= dlb->num_queues)
-		return -EINVAL;
-
-	ev_queue = &dlb->ev_queues[ev_qid];
-
-	ev_queue->qm_queue.is_directed = queue_conf->event_queue_cfg &
-		RTE_EVENT_QUEUE_CFG_SINGLE_LINK;
-	ev_queue->id = ev_qid;
-	ev_queue->conf = *queue_conf;
-
-	if (!ev_queue->qm_queue.is_directed) {
-		ret = dlb_eventdev_ldb_queue_setup(dev, ev_queue, queue_conf);
-	} else {
-		/* The directed queue isn't setup until link time, at which
-		 * point we know its directed port ID. Directed queue setup
-		 * will only fail if this queue is already setup or there are
-		 * no directed queues left to configure.
-		 */
-		ret = 0;
-
-		ev_queue->qm_queue.config_state = DLB_NOT_CONFIGURED;
-
-		if (ev_queue->setup_done ||
-		    dlb_num_dir_queues_setup(dlb) == dlb->num_dir_queues)
-			ret = -EINVAL;
-	}
-
-	/* Tear down pre-existing port->queue links */
-	if (!ret && dlb->run_state == DLB_RUN_STATE_STOPPED)
-		dlb_queue_link_teardown(dlb, ev_queue);
-
-	if (!ret)
-		ev_queue->setup_done = true;
-
-	return ret;
-}
-
-static void
-dlb_port_link_teardown(struct dlb_eventdev *dlb,
-		       struct dlb_eventdev_port *ev_port)
-{
-	struct dlb_eventdev_queue *ev_queue;
-	int i;
-
-	for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
-		if (!ev_port->link[i].valid)
-			continue;
-
-		ev_queue = &dlb->ev_queues[ev_port->link[i].queue_id];
-
-		ev_port->link[i].valid = false;
-		ev_port->num_links--;
-		ev_queue->num_links--;
-	}
-}
-
-static int
-dlb_eventdev_port_setup(struct rte_eventdev *dev,
-			uint8_t ev_port_id,
-			const struct rte_event_port_conf *port_conf)
-{
-	struct dlb_eventdev *dlb;
-	struct dlb_eventdev_port *ev_port;
-	bool use_rsvd_token_scheme;
-	uint32_t adj_cq_depth;
-	uint16_t rsvd_tokens;
-	int ret;
-
-	if (dev == NULL || port_conf == NULL) {
-		DLB_LOG_ERR("Null parameter\n");
-		return -EINVAL;
-	}
-
-	dlb = dlb_pmd_priv(dev);
-
-	if (ev_port_id >= DLB_MAX_NUM_PORTS)
-		return -EINVAL;
-
-	if (port_conf->dequeue_depth >
-		evdev_dlb_default_info.max_event_port_dequeue_depth ||
-	    port_conf->enqueue_depth >
-		evdev_dlb_default_info.max_event_port_enqueue_depth)
-		return -EINVAL;
-
-	ev_port = &dlb->ev_ports[ev_port_id];
-	/* configured? */
-	if (ev_port->setup_done) {
-		DLB_LOG_ERR("evport %d is already configured\n", ev_port_id);
-		return -EINVAL;
-	}
-
-	/* The reserved token interrupt arming scheme requires that one or more
-	 * CQ tokens be reserved by the PMD. This limits the amount of CQ space
-	 * usable by the DLB, so in order to give an *effective* CQ depth equal
-	 * to the user-requested value, we double CQ depth and reserve half of
-	 * its tokens. If the user requests the max CQ depth (256) then we
-	 * cannot double it, so we reserve one token and give an effective
-	 * depth of 255 entries.
-	 */
-	use_rsvd_token_scheme = true;
-	rsvd_tokens = 1;
-	adj_cq_depth = port_conf->dequeue_depth;
-
-	if (use_rsvd_token_scheme && adj_cq_depth < 256) {
-		rsvd_tokens = adj_cq_depth;
-		adj_cq_depth *= 2;
-	}
-
-	ev_port->qm_port.is_directed = port_conf->event_port_cfg &
-		RTE_EVENT_PORT_CFG_SINGLE_LINK;
-
-	if (!ev_port->qm_port.is_directed) {
-		ret = dlb_hw_create_ldb_port(dlb,
-					     ev_port,
-					     port_conf->dequeue_depth,
-					     adj_cq_depth,
-					     port_conf->enqueue_depth,
-					     rsvd_tokens,
-					     use_rsvd_token_scheme);
-		if (ret < 0) {
-			DLB_LOG_ERR("Failed to create the lB port ve portId=%d\n",
-				    ev_port_id);
-			return ret;
-		}
-	} else {
-		ret = dlb_hw_create_dir_port(dlb,
-					     ev_port,
-					     port_conf->dequeue_depth,
-					     adj_cq_depth,
-					     port_conf->enqueue_depth,
-					     rsvd_tokens,
-					     use_rsvd_token_scheme);
-		if (ret < 0) {
-			DLB_LOG_ERR("Failed to create the DIR port\n");
-			return ret;
-		}
-	}
-
-	/* Save off port config for reconfig */
-	dlb->ev_ports[ev_port_id].conf = *port_conf;
-
-	dlb->ev_ports[ev_port_id].id = ev_port_id;
-	dlb->ev_ports[ev_port_id].enq_configured = true;
-	dlb->ev_ports[ev_port_id].setup_done = true;
-	dlb->ev_ports[ev_port_id].inflight_max =
-		port_conf->new_event_threshold;
-	dlb->ev_ports[ev_port_id].implicit_release =
-		!(port_conf->event_port_cfg &
-		  RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL);
-	dlb->ev_ports[ev_port_id].outstanding_releases = 0;
-	dlb->ev_ports[ev_port_id].inflight_credits = 0;
-	dlb->ev_ports[ev_port_id].credit_update_quanta =
-		RTE_LIBRTE_PMD_DLB_SW_CREDIT_QUANTA;
-	dlb->ev_ports[ev_port_id].dlb = dlb; /* reverse link */
-
-	/* Tear down pre-existing port->queue links */
-	if (dlb->run_state == DLB_RUN_STATE_STOPPED)
-		dlb_port_link_teardown(dlb, &dlb->ev_ports[ev_port_id]);
-
-	dev->data->ports[ev_port_id] = &dlb->ev_ports[ev_port_id];
-
-	return 0;
-}
-
-static int
-dlb_eventdev_reapply_configuration(struct rte_eventdev *dev)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	int ret, i;
-
-	/* If an event queue or port was previously configured, but hasn't been
-	 * reconfigured, reapply its original configuration.
-	 */
-	for (i = 0; i < dlb->num_queues; i++) {
-		struct dlb_eventdev_queue *ev_queue;
-
-		ev_queue = &dlb->ev_queues[i];
-
-		if (ev_queue->qm_queue.config_state != DLB_PREV_CONFIGURED)
-			continue;
-
-		ret = dlb_eventdev_queue_setup(dev, i, &ev_queue->conf);
-		if (ret < 0) {
-			DLB_LOG_ERR("dlb: failed to reconfigure queue %d", i);
-			return ret;
-		}
-	}
-
-	for (i = 0; i < dlb->num_ports; i++) {
-		struct dlb_eventdev_port *ev_port = &dlb->ev_ports[i];
-
-		if (ev_port->qm_port.config_state != DLB_PREV_CONFIGURED)
-			continue;
-
-		ret = dlb_eventdev_port_setup(dev, i, &ev_port->conf);
-		if (ret < 0) {
-			DLB_LOG_ERR("dlb: failed to reconfigure ev_port %d",
-				    i);
-			return ret;
-		}
-	}
-
-	return 0;
-}
-
-static int
-set_dev_id(const char *key __rte_unused,
-	   const char *value,
-	   void *opaque)
-{
-	int *dev_id = opaque;
-	int ret;
-
-	if (value == NULL || opaque == NULL) {
-		DLB_LOG_ERR("NULL pointer\n");
-		return -EINVAL;
-	}
-
-	ret = dlb_string_to_int(dev_id, value);
-	if (ret < 0)
-		return ret;
-
-	return 0;
-}
-
-static int
-set_defer_sched(const char *key __rte_unused,
-		const char *value,
-		void *opaque)
-{
-	int *defer_sched = opaque;
-
-	if (value == NULL || opaque == NULL) {
-		DLB_LOG_ERR("NULL pointer\n");
-		return -EINVAL;
-	}
-
-	if (strncmp(value, "on", 2) != 0) {
-		DLB_LOG_ERR("Invalid defer_sched argument \"%s\" (expected \"on\")\n",
-			    value);
-		return -EINVAL;
-	}
-
-	*defer_sched = 1;
-
-	return 0;
-}
-
-static int
-set_num_atm_inflights(const char *key __rte_unused,
-		      const char *value,
-		      void *opaque)
-{
-	int *num_atm_inflights = opaque;
-	int ret;
-
-	if (value == NULL || opaque == NULL) {
-		DLB_LOG_ERR("NULL pointer\n");
-		return -EINVAL;
-	}
-
-	ret = dlb_string_to_int(num_atm_inflights, value);
-	if (ret < 0)
-		return ret;
-
-	if (*num_atm_inflights < 0 ||
-	    *num_atm_inflights > DLB_MAX_NUM_ATM_INFLIGHTS) {
-		DLB_LOG_ERR("dlb: atm_inflights must be between 0 and %d\n",
-			    DLB_MAX_NUM_ATM_INFLIGHTS);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int
-dlb_validate_port_link(struct dlb_eventdev_port *ev_port,
-		       uint8_t queue_id,
-		       bool link_exists,
-		       int index)
-{
-	struct dlb_eventdev *dlb = ev_port->dlb;
-	struct dlb_eventdev_queue *ev_queue;
-	bool port_is_dir, queue_is_dir;
-
-	if (queue_id > dlb->num_queues) {
-		DLB_LOG_ERR("queue_id %d > num queues %d\n",
-			    queue_id, dlb->num_queues);
-		rte_errno = -EINVAL;
-		return -1;
-	}
-
-	ev_queue = &dlb->ev_queues[queue_id];
-
-	if (!ev_queue->setup_done &&
-	    ev_queue->qm_queue.config_state != DLB_PREV_CONFIGURED) {
-		DLB_LOG_ERR("setup not done and not previously configured\n");
-		rte_errno = -EINVAL;
-		return -1;
-	}
-
-	port_is_dir = ev_port->qm_port.is_directed;
-	queue_is_dir = ev_queue->qm_queue.is_directed;
-
-	if (port_is_dir != queue_is_dir) {
-		DLB_LOG_ERR("%s queue %u can't link to %s port %u\n",
-			    queue_is_dir ? "DIR" : "LDB", ev_queue->id,
-			    port_is_dir ? "DIR" : "LDB", ev_port->id);
-
-		rte_errno = -EINVAL;
-		return -1;
-	}
-
-	/* Check if there is space for the requested link */
-	if (!link_exists && index == -1) {
-		DLB_LOG_ERR("no space for new link\n");
-		rte_errno = -ENOSPC;
-		return -1;
-	}
-
-	/* Check if the directed port is already linked */
-	if (ev_port->qm_port.is_directed && ev_port->num_links > 0 &&
-	    !link_exists) {
-		DLB_LOG_ERR("Can't link DIR port %d to >1 queues\n",
-			    ev_port->id);
-		rte_errno = -EINVAL;
-		return -1;
-	}
-
-	/* Check if the directed queue is already linked */
-	if (ev_queue->qm_queue.is_directed && ev_queue->num_links > 0 &&
-	    !link_exists) {
-		DLB_LOG_ERR("Can't link DIR queue %d to >1 ports\n",
-			    ev_queue->id);
-		rte_errno = -EINVAL;
-		return -1;
-	}
-
-	return 0;
-}
-
-static int32_t
-dlb_hw_create_dir_queue(struct dlb_eventdev *dlb, int32_t qm_port_id)
-{
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_create_dir_queue_args cfg;
-	struct dlb_cmd_response response = {0};
-	int32_t ret;
-
-	cfg.response = (uintptr_t)&response;
-
-	/* The directed port is always configured before its queue */
-	cfg.port_id = qm_port_id;
-
-	ret = dlb_iface_dir_queue_create(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: create DIR event queue error, ret=%d (driver status:

%s)\n",

drivers/event/dlb/dlb.c deleted +0 -476
-			    ret, dlb_error_strings[response.status]);
-		return -EINVAL;
-	}
-
-	return response.id;
-}
-
-static int
-dlb_eventdev_dir_queue_setup(struct dlb_eventdev *dlb,
-			     struct dlb_eventdev_queue *ev_queue,
-			     struct dlb_eventdev_port *ev_port)
-{
-	int32_t qm_qid;
-
-	qm_qid = dlb_hw_create_dir_queue(dlb, ev_port->qm_port.id);
-
-	if (qm_qid < 0) {
-		DLB_LOG_ERR("Failed to create the DIR queue\n");
-		return qm_qid;
-	}
-
-	dlb->qm_dir_to_ev_queue_id[qm_qid] = ev_queue->id;
-
-	ev_queue->qm_queue.id = qm_qid;
-
-	return 0;
-}
-
-static int16_t
-dlb_hw_map_ldb_qid_to_port(struct dlb_hw_dev *handle,
-			   uint32_t qm_port_id,
-			   uint16_t qm_qid,
-			   uint8_t priority)
-{
-	struct dlb_map_qid_args cfg;
-	struct dlb_cmd_response response;
-	int32_t ret;
-
-	if (handle == NULL)
-		return -EINVAL;
-
-	/* Build message */
-	cfg.response = (uintptr_t)&response;
-	cfg.port_id = qm_port_id;
-	cfg.qid = qm_qid;
-	cfg.priority = EV_TO_DLB_PRIO(priority);
-
-	ret = dlb_iface_map_qid(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: map qid error, ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		DLB_LOG_ERR("dlb: device_id=%d grp=%d, qm_port=%d, qm_qid=%d prio=%d\n",
-			    handle->device_id,
-			    handle->domain_id, cfg.port_id,
-			    cfg.qid,
-			    cfg.priority);
-	} else {
-		DLB_LOG_DBG("dlb: mapped queue %d to qm_port %d\n",
-			    qm_qid, qm_port_id);
-	}
-
-	return ret;
-}
-
-static int
-dlb_event_queue_join_ldb(struct dlb_eventdev *dlb,
-			 struct dlb_eventdev_port *ev_port,
-			 struct dlb_eventdev_queue *ev_queue,
-			 uint8_t priority)
-{
-	int first_avail = -1;
-	int ret, i;
-
-	for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
-		if (ev_port->link[i].valid) {
-			if (ev_port->link[i].queue_id == ev_queue->id &&
-			    ev_port->link[i].priority == priority) {
-				if (ev_port->link[i].mapped)
-					return 0; /* already mapped */
-				first_avail = i;
-			}
-		} else {
-			if (first_avail == -1)
-				first_avail = i;
-		}
-	}
-	if (first_avail == -1) {
-		DLB_LOG_ERR("dlb: qm_port %d has no available QID slots.\n",
-			    ev_port->qm_port.id);
-		return -EINVAL;
-	}
-
-	ret = dlb_hw_map_ldb_qid_to_port(&dlb->qm_instance,
-					 ev_port->qm_port.id,
-					 ev_queue->qm_queue.id,
-					 priority);
-
-	if (!ret)
-		ev_port->link[first_avail].mapped = true;
-
-	return ret;
-}
-
-static int
-dlb_do_port_link(struct rte_eventdev *dev,
-		 struct dlb_eventdev_queue *ev_queue,
-		 struct dlb_eventdev_port *ev_port,
-		 uint8_t prio)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	int err;
-
-	/* Don't link until start time. */
-	if (dlb->run_state == DLB_RUN_STATE_STOPPED)
-		return 0;
-
-	if (ev_queue->qm_queue.is_directed)
-		err = dlb_eventdev_dir_queue_setup(dlb, ev_queue, ev_port);
-	else
-		err = dlb_event_queue_join_ldb(dlb, ev_port, ev_queue, prio);
-
-	if (err) {
-		DLB_LOG_ERR("port link failure for %s ev_q %d, ev_port %d\n",
-			    ev_queue->qm_queue.is_directed ? "DIR" : "LDB",
-			    ev_queue->id, ev_port->id);
-
-		rte_errno = err;
-		return -1;
-	}
-
-	return 0;
-}
-
-static int
-dlb_eventdev_apply_port_links(struct rte_eventdev *dev)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	int i;
-
-	/* Perform requested port->queue links */
-	for (i = 0; i < dlb->num_ports; i++) {
-		struct dlb_eventdev_port *ev_port = &dlb->ev_ports[i];
-		int j;
-
-		for (j = 0; j < DLB_MAX_NUM_QIDS_PER_LDB_CQ; j++) {
-			struct dlb_eventdev_queue *ev_queue;
-			uint8_t prio, queue_id;
-
-			if (!ev_port->link[j].valid)
-				continue;
-
-			prio = ev_port->link[j].priority;
-			queue_id = ev_port->link[j].queue_id;
-
-			if (dlb_validate_port_link(ev_port, queue_id, true, j))
-				return -EINVAL;
-
-			ev_queue = &dlb->ev_queues[queue_id];
-
-			if (dlb_do_port_link(dev, ev_queue, ev_port, prio))
-				return -EINVAL;
-		}
-	}
-
-	return 0;
-}
-
-static int
-dlb_eventdev_port_link(struct rte_eventdev *dev, void *event_port,
-		       const uint8_t queues[], const uint8_t priorities[],
-		       uint16_t nb_links)
-
-{
-	struct dlb_eventdev_port *ev_port = event_port;
-	struct dlb_eventdev *dlb;
-	int i, j;
-
-	RTE_SET_USED(dev);
-
-	if (ev_port == NULL) {
-		DLB_LOG_ERR("dlb: evport not setup\n");
-		rte_errno = -EINVAL;
-		return 0;
-	}
-
-	if (!ev_port->setup_done &&
-	    ev_port->qm_port.config_state != DLB_PREV_CONFIGURED) {
-		DLB_LOG_ERR("dlb: evport not setup\n");
-		rte_errno = -EINVAL;
-		return 0;
-	}
-
-	/* Note: rte_event_port_link() ensures the PMD won't receive a NULL
-	 * queues pointer.
-	 */
-	if (nb_links == 0) {
-		DLB_LOG_DBG("dlb: nb_links is 0\n");
-		return 0; /* Ignore and return success */
-	}
-
-	dlb = ev_port->dlb;
-
-	DLB_LOG_DBG("Linking %u queues to %s port %d\n",
-		    nb_links,
-		    ev_port->qm_port.is_directed ? "DIR" : "LDB",
-		    ev_port->id);
-
-	for (i = 0; i < nb_links; i++) {
-		struct dlb_eventdev_queue *ev_queue;
-		uint8_t queue_id, prio;
-		bool found = false;
-		int index = -1;
-
-		queue_id = queues[i];
-		prio = priorities[i];
-
-		/* Check if the link already exists. */
-		for (j = 0; j < DLB_MAX_NUM_QIDS_PER_LDB_CQ; j++)
-			if (ev_port->link[j].valid) {
-				if (ev_port->link[j].queue_id == queue_id) {
-					found = true;
-					index = j;
-					break;
-				}
-			} else {
-				if (index == -1)
-					index = j;
-			}
-
-		/* could not link */
-		if (index == -1)
-			break;
-
-		/* Check if already linked at the requested priority */
-		if (found && ev_port->link[j].priority == prio)
-			continue;
-
-		if (dlb_validate_port_link(ev_port, queue_id, found, index))
-			break; /* return index of offending queue */
-
-		ev_queue = &dlb->ev_queues[queue_id];
-
-		if (dlb_do_port_link(dev, ev_queue, ev_port, prio))
-			break; /* return index of offending queue */
-
-		ev_queue->num_links++;
-
-		ev_port->link[index].queue_id = queue_id;
-		ev_port->link[index].priority = prio;
-		ev_port->link[index].valid = true;
-		/* Entry already exists?  If so, then must be prio change */
-		if (!found)
-			ev_port->num_links++;
-	}
-	return i;
-}
-
-static int
-dlb_eventdev_start(struct rte_eventdev *dev)
-{
-	struct dlb_eventdev *dlb = dlb_pmd_priv(dev);
-	struct dlb_hw_dev *handle = &dlb->qm_instance;
-	struct dlb_start_domain_args cfg;
-	struct dlb_cmd_response response;
-	int ret, i;
-
-	rte_spinlock_lock(&dlb->qm_instance.resource_lock);
-	if (dlb->run_state != DLB_RUN_STATE_STOPPED) {
-		DLB_LOG_ERR("bad state %d for dev_start\n",
-			    (int)dlb->run_state);
-		rte_spinlock_unlock(&dlb->qm_instance.resource_lock);
-		return -EINVAL;
-	}
-	dlb->run_state	= DLB_RUN_STATE_STARTING;
-	rte_spinlock_unlock(&dlb->qm_instance.resource_lock);
-
-	/* If the device was configured more than once, some event ports and/or
-	 * queues may need to be reconfigured.
-	 */
-	ret = dlb_eventdev_reapply_configuration(dev);
-	if (ret)
-		return ret;
-
-	/* The DLB PMD delays port links until the device is started. */
-	ret = dlb_eventdev_apply_port_links(dev);
-	if (ret)
-		return ret;
-
-	cfg.response = (uintptr_t)&response;
-
-	for (i = 0; i < dlb->num_ports; i++) {
-		if (!dlb->ev_ports[i].setup_done) {
-			DLB_LOG_ERR("dlb: port %d not setup", i);
-			return -ESTALE;
-		}
-	}
-
-	for (i = 0; i < dlb->num_queues; i++) {
-		if (dlb->ev_queues[i].num_links == 0) {
-			DLB_LOG_ERR("dlb: queue %d is not linked", i);
-			return -ENOLINK;
-		}
-	}
-
-	ret = dlb_iface_sched_domain_start(handle, &cfg);
-	if (ret < 0) {
-		DLB_LOG_ERR("dlb: sched_domain_start ret=%d (driver status: %s)\n",
-			    ret, dlb_error_strings[response.status]);
-		return ret;
-	}
-
-	dlb->run_state = DLB_RUN_STATE_STARTED;
-	DLB_LOG_DBG("dlb: sched_domain_start completed OK\n");
-
-	return 0;
-}
-
-static inline int
-dlb_check_enqueue_sw_credits(struct dlb_eventdev *dlb,
-			     struct dlb_eventdev_port *ev_port)
-{
-	uint32_t sw_inflights = __atomic_load_n(&dlb->inflights,
-						__ATOMIC_SEQ_CST);
-	const int num = 1;
-
-	if (unlikely(ev_port->inflight_max < sw_inflights)) {
-		DLB_INC_STAT(ev_port->stats.traffic.tx_nospc_inflight_max, 1);
-		rte_errno = -ENOSPC;
-		return 1;
-	}
-
-	if (ev_port->inflight_credits < num) {
-		/* check if event enqueue brings ev_port over max threshold */
-		uint32_t credit_update_quanta = ev_port->credit_update_quanta;
-
-		if (sw_inflights + credit_update_quanta >
-		    dlb->new_event_limit) {
-			DLB_INC_STAT(
-				ev_port->stats.traffic.tx_nospc_new_event_limit,
-				1);
-			rte_errno = -ENOSPC;
-			return 1;
-		}
-
-		__atomic_fetch_add(&dlb->inflights, credit_update_quanta,
-				   __ATOMIC_SEQ_CST);
-		ev_port->inflight_credits += (credit_update_quanta);
-
-		if (ev_port->inflight_credits < num) {
-			DLB_INC_STAT(
-			    ev_port->stats.traffic.tx_nospc_inflight_credits,
-			    1);
-			rte_errno = -ENOSPC;
-			return 1;
-		}
-	}
-
-	return 0;
-}
-
-static inline void
-dlb_replenish_sw_credits(struct dlb_eventdev *dlb,
-			 struct dlb_eventdev_port *ev_port)
-{
-	uint16_t quanta = ev_port->credit_update_quanta;
-
-	if (ev_port->inflight_credits >= quanta * 2) {
-		/* Replenish credits, saving one quanta for enqueues */
-		uint16_t val = ev_port->inflight_credits - quanta;
-
-		__atomic_fetch_sub(&dlb->inflights, val, __ATOMIC_SEQ_CST);
-		ev_port->inflight_credits -= val;
-	}
-}
-
-static __rte_always_inline uint16_t
-dlb_read_pc(struct process_local_port_data *port_data, bool ldb)
-{
-	volatile uint16_t *popcount;
-
-	if (ldb)
-		popcount = port_data->ldb_popcount;
-	else
-		popcount = port_data->dir_popcount;
-
-	return *popcount;
-}
-
-static inline int
-dlb_check_enqueue_hw_ldb_credits(struct dlb_port *qm_port,
-				 struct process_local_port_data *port_data)
-{
-	if (unlikely(qm_port->cached_ldb_credits == 0)) {
-		uint16_t pc;
-
-		pc = dlb_read_pc(port_data, true);
-
-		qm_port->cached_ldb_credits = pc -
-			qm_port->ldb_pushcount_at_credit_expiry;
-		if (unlikely(qm_port->cached_ldb_credits == 0)) {
-			DLB_INC_STAT(
-			qm_port->ev_port->stats.traffic.tx_nospc_ldb_hw_credits,
-			1);
-
-			DLB_LOG_DBG("ldb credits exhausted\n");
-			return 1;
-		}
-		qm_port->ldb_pushcount_at_credit_expiry +=
-			qm_port->cached_ldb_credits;
-	}
-
-	return 0;
-}
-
-static inline int
-dlb_check_enqueue_hw_dir_credits(struct dlb_port *qm_port,
-				 struct process_local_port_data *port_data)
-{
-	if (unlikely(qm_port->cached_dir_credits == 0)) {
-		uint16_t pc;
-
-		pc = dlb_read_pc(port_data, false);
-
-		qm_port->cached_dir_credits = pc -
-			qm_port->dir_pushcount_at_credit_expiry;
-
-		if (unlikely(qm_port->cached_dir_credits == 0)) {
-			DLB_INC_STAT(
-			qm_port->ev_port->stats.traffic.tx_nospc_dir_hw_credits,
-			1);
-
-			DLB_LOG_DBG("dir credits exhausted\n");
-			return 1;
-		}
-		qm_port->dir_pushcount_at_credit_expiry +=
-			qm_port->cached_dir_credits;
-	}
-
-	return 0;
-}
-
-static inline int
-dlb_event_enqueue_prep(struct dlb_eventdev_port *ev_port,
-		       struct dlb_port *qm_port,
-		       const struct rte_event ev[],
-		       struct process_local_port_data *port_data,
-		       uint8_t *sched_type,
-		       uint8_t *queue_id)
-{
-	struct dlb_eventdev *dlb = ev_port->dlb;
-	struct dlb_eventdev_queue *ev_queue;
-	uint16_t *cached_credits = NULL;
-	struct dlb_queue *qm_queue;
-
-	ev_queue = &dlb->ev_queues[ev->queue_id];
-	qm_queue = &ev_queue->qm_queue;
-	*queue_id = qm_queue->id;
-
-	/* Ignore sched_type and hardware credits on release events */
-	if (ev->op == RTE_EVENT_OP_RELEASE)
-		goto op_check;
-
-	if (!qm_queue->is_directed) {
-		/* Load balanced destination queue */
-
-		if (dlb_check_enqueue_hw_ldb_credits(qm_port, port_data)) {
-			rte_errno = -ENOSPC;
-			return 1;
-		}
-		cached_credits = &qm_port->cached_ldb_credits;
-
-		switch (ev->sched_type) {
-		case RTE_SCHED_TYPE_ORDERED:
-			DLB_LOG_DBG("dlb: put_qe: RTE_SCHED_TYPE_ORDERED\n");
-			if (qm_queue->sched_type != RTE_SCHED_TYPE_ORDERED) {
-				DLB_LOG_ERR("dlb: tried to send ordered event to unordered queue

%d\n",

drivers/event/dlb/dlb.c deleted +0 -88
-					    *queue_id);
-				rte_errno = -EINVAL;
-				return 1;
-			}
-			*sched_type = DLB_SCHED_ORDERED;
-			break;
-		case RTE_SCHED_TYPE_ATOMIC:
-			DLB_LOG_DBG("dlb: put_qe: RTE_SCHED_TYPE_ATOMIC\n");
-			*sched_type = DLB_SCHED_ATOMIC;
-			break;
-		case RTE_SCHED_TYPE_PARALLEL:
-			DLB_LOG_DBG("dlb: put_qe: RTE_SCHED_TYPE_PARALLEL\n");
-			if (qm_queue->sched_type == RTE_SCHED_TYPE_ORDERED)
-				*sched_type = DLB_SCHED_ORDERED;
-			else
-				*sched_type = DLB_SCHED_UNORDERED;
-			break;
-		default:
-			DLB_LOG_ERR("Unsupported LDB sched type in put_qe\n");
-			DLB_INC_STAT(ev_port->stats.tx_invalid, 1);
-			rte_errno = -EINVAL;
-			return 1;
-		}
-	} else {
-		/* Directed destination queue */
-
-		if (dlb_check_enqueue_hw_dir_credits(qm_port, port_data)) {
-			rte_errno = -ENOSPC;
-			return 1;
-		}
-		cached_credits = &qm_port->cached_dir_credits;
-
-		DLB_LOG_DBG("dlb: put_qe: RTE_SCHED_TYPE_DIRECTED\n");
-
-		*sched_type = DLB_SCHED_DIRECTED;
-	}
-
-op_check:
-	switch (ev->op) {
-	case RTE_EVENT_OP_NEW:
-		/* Check that a sw credit is available */
-		if (dlb_check_enqueue_sw_credits(dlb, ev_port)) {
-			rte_errno = -ENOSPC;
-			return 1;
-		}
-		ev_port->inflight_credits--;
-		(*cached_credits)--;
-		break;
-	case RTE_EVENT_OP_FORWARD:
-		/* Check for outstanding_releases underflow. If this occurs,
-		 * the application is not using the EVENT_OPs correctly; for
-		 * example, forwarding or releasing events that were not
-		 * dequeued.
-		 */
-		RTE_ASSERT(ev_port->outstanding_releases > 0);
-		ev_port->outstanding_releases--;
-		qm_port->issued_releases++;
-		(*cached_credits)--;
-		break;
-	case RTE_EVENT_OP_RELEASE:
-		ev_port->inflight_credits++;
-		/* Check for outstanding_releases underflow. If this occurs,
-		 * the application is not using the EVENT_OPs correctly; for
-		 * example, forwarding or releasing events that were not
-		 * dequeued.
-		 */
-		RTE_ASSERT(ev_port->outstanding_releases > 0);
-		ev_port->outstanding_releases--;
-		qm_port->issued_releases++;
-		/* Replenish s/w credits if enough are cached */
-		dlb_replenish_sw_credits(dlb, ev_port);
-		break;
-	}
-
-	DLB_INC_STAT(ev_port->stats.tx_op_cnt[ev->op], 1);
-	DLB_INC_STAT(ev_port->stats.traffic.tx_ok, 1);
-
-#ifndef RTE_LIBRTE_PMD_DLB_QUELL_STATS
-	if (ev->op != RTE_EVENT_OP_RELEASE) {
-		DLB_INC_STAT(ev_port->stats.enq_ok[ev->queue_id], 1);
-		DLB_INC_STAT(ev_port->stats.tx_sched_cnt[*sched_type], 1);
-	}
-#endif
-
-	return 0;
-}
-
-static uint8_t cmd_byte_map[NUM_DLB_PORT_TYPES][DLB_NUM_HW_SCHED_TYPES] =

{

drivers/event/dlb/dlb.c deleted +0 -520
-	{
-		/* Load-balanced cmd bytes */
-		[RTE_EVENT_OP_NEW] = DLB_NEW_CMD_BYTE,
-		[RTE_EVENT_OP_FORWARD] = DLB_FWD_CMD_BYTE,
-		[RTE_EVENT_OP_RELEASE] = DLB_COMP_CMD_BYTE,
-	},
-	{
-		/* Directed cmd bytes */
-		[RTE_EVENT_OP_NEW] = DLB_NEW_CMD_BYTE,
-		[RTE_EVENT_OP_FORWARD] = DLB_NEW_CMD_BYTE,
-		[RTE_EVENT_OP_RELEASE] = DLB_NOOP_CMD_BYTE,
-	},
-};
-
-static inline void
-dlb_event_build_hcws(struct dlb_port *qm_port,
-		     const struct rte_event ev[],
-		     int num,
-		     uint8_t *sched_type,
-		     uint8_t *queue_id)
-{
-	struct dlb_enqueue_qe *qe;
-	uint16_t sched_word[4];
-	__m128i sse_qe[2];
-	int i;
-
-	qe = qm_port->qe4;
-
-	sse_qe[0] = _mm_setzero_si128();
-	sse_qe[1] = _mm_setzero_si128();
-
-	switch (num) {
-	case 4:
-		/* Construct the metadata portion of two HCWs in one 128b SSE
-		 * register. HCW metadata is constructed in the SSE registers
-		 * like so:
-		 * sse_qe[0][63:0]:   qe[0]'s metadata
-		 * sse_qe[0][127:64]: qe[1]'s metadata
-		 * sse_qe[1][63:0]:   qe[2]'s metadata
-		 * sse_qe[1][127:64]: qe[3]'s metadata
-		 */
-
-		/* Convert the event operation into a command byte and store it
-		 * in the metadata:
-		 * sse_qe[0][63:56]   = cmd_byte_map[is_directed][ev[0].op]
-		 * sse_qe[0][127:120] = cmd_byte_map[is_directed][ev[1].op]
-		 * sse_qe[1][63:56]   = cmd_byte_map[is_directed][ev[2].op]
-		 * sse_qe[1][127:120] = cmd_byte_map[is_directed][ev[3].op]
-		 */
-#define DLB_QE_CMD_BYTE 7
-		sse_qe[0] = _mm_insert_epi8(sse_qe[0],
-				cmd_byte_map[qm_port->is_directed][ev[0].op],
-				DLB_QE_CMD_BYTE);
-		sse_qe[0] = _mm_insert_epi8(sse_qe[0],
-				cmd_byte_map[qm_port->is_directed][ev[1].op],
-				DLB_QE_CMD_BYTE + 8);
-		sse_qe[1] = _mm_insert_epi8(sse_qe[1],
-				cmd_byte_map[qm_port->is_directed][ev[2].op],
-				DLB_QE_CMD_BYTE);
-		sse_qe[1] = _mm_insert_epi8(sse_qe[1],
-				cmd_byte_map[qm_port->is_directed][ev[3].op],
-				DLB_QE_CMD_BYTE + 8);
-
-		/* Store priority, scheduling type, and queue ID in the sched
-		 * word array because these values are re-used when the
-		 * destination is a directed queue.
-		 */
-		sched_word[0] = EV_TO_DLB_PRIO(ev[0].priority) << 10 |
-				sched_type[0] << 8 |
-				queue_id[0];
-		sched_word[1] = EV_TO_DLB_PRIO(ev[1].priority) << 10 |
-				sched_type[1] << 8 |
-				queue_id[1];
-		sched_word[2] = EV_TO_DLB_PRIO(ev[2].priority) << 10 |
-				sched_type[2] << 8 |
-				queue_id[2];
-		sched_word[3] = EV_TO_DLB_PRIO(ev[3].priority) << 10 |
-				sched_type[3] << 8 |
-				queue_id[3];
-
-		/* Store the event priority, scheduling type, and queue ID in
-		 * the metadata:
-		 * sse_qe[0][31:16] = sched_word[0]
-		 * sse_qe[0][95:80] = sched_word[1]
-		 * sse_qe[1][31:16] = sched_word[2]
-		 * sse_qe[1][95:80] = sched_word[3]
-		 */
-#define DLB_QE_QID_SCHED_WORD 1
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-					     sched_word[0],
-					     DLB_QE_QID_SCHED_WORD);
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-					     sched_word[1],
-					     DLB_QE_QID_SCHED_WORD + 4);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-					     sched_word[2],
-					     DLB_QE_QID_SCHED_WORD);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-					     sched_word[3],
-					     DLB_QE_QID_SCHED_WORD + 4);
-
-		/* If the destination is a load-balanced queue, store the lock
-		 * ID. If it is a directed queue, DLB places this field in
-		 * bytes 10-11 of the received QE, so we format it accordingly:
-		 * sse_qe[0][47:32]  = dir queue ? sched_word[0] : flow_id[0]
-		 * sse_qe[0][111:96] = dir queue ? sched_word[1] : flow_id[1]
-		 * sse_qe[1][47:32]  = dir queue ? sched_word[2] : flow_id[2]
-		 * sse_qe[1][111:96] = dir queue ? sched_word[3] : flow_id[3]
-		 */
-#define DLB_QE_LOCK_ID_WORD 2
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-				(sched_type[0] == DLB_SCHED_DIRECTED) ?
-					sched_word[0] : ev[0].flow_id,
-				DLB_QE_LOCK_ID_WORD);
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-				(sched_type[1] == DLB_SCHED_DIRECTED) ?
-					sched_word[1] : ev[1].flow_id,
-				DLB_QE_LOCK_ID_WORD + 4);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-				(sched_type[2] == DLB_SCHED_DIRECTED) ?
-					sched_word[2] : ev[2].flow_id,
-				DLB_QE_LOCK_ID_WORD);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-				(sched_type[3] == DLB_SCHED_DIRECTED) ?
-					sched_word[3] : ev[3].flow_id,
-				DLB_QE_LOCK_ID_WORD + 4);
-
-		/* Store the event type and sub event type in the metadata:
-		 * sse_qe[0][15:0]  = flow_id[0]
-		 * sse_qe[0][79:64] = flow_id[1]
-		 * sse_qe[1][15:0]  = flow_id[2]
-		 * sse_qe[1][79:64] = flow_id[3]
-		 */
-#define DLB_QE_EV_TYPE_WORD 0
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-					     ev[0].sub_event_type << 8 |
-						ev[0].event_type,
-					     DLB_QE_EV_TYPE_WORD);
-		sse_qe[0] = _mm_insert_epi16(sse_qe[0],
-					     ev[1].sub_event_type << 8 |
-						ev[1].event_type,
-					     DLB_QE_EV_TYPE_WORD + 4);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-					     ev[2].sub_event_type << 8 |
-						ev[2].event_type,
-					     DLB_QE_EV_TYPE_WORD);
-		sse_qe[1] = _mm_insert_epi16(sse_qe[1],
-					     ev[3].sub_event_type << 8 |
-						ev[3].event_type,
-					     DLB_QE_EV_TYPE_WORD + 4);
-
-		/* Store the metadata to memory (use the double-precision
-		 * _mm_storeh_pd because there is no integer function for
-		 * storing the upper 64b):
-		 * qe[0] metadata = sse_qe[0][63:0]
-		 * qe[1] metadata = sse_qe[0][127:64]
-		 * qe[2] metadata = sse_qe[1][63:0]
-		 * qe[3] metadata = sse_qe[1][127:64]
-		 */
-		_mm_storel_epi64((__m128i *)&qe[0].u.opaque_data, sse_qe[0]);
-		_mm_storeh_pd((double *)&qe[1].u.opaque_data,
-			      (__m128d) sse_qe[0]);
-		_mm_storel_epi64((__m128i *)&qe[2].u.opaque_data, sse_qe[1]);
-		_mm_storeh_pd((double *)&qe[3].u.opaque_data,
-			      (__m128d) sse_qe[1]);
-
-		qe[0].data = ev[0].u64;
-		qe[1].data = ev[1].u64;
-		qe[2].data = ev[2].u64;
-		qe[3].data = ev[3].u64;
-
-		break;
-	case 3:
-	case 2:
-	case 1:
-		for (i = 0; i < num; i++) {
-			qe[i].cmd_byte =
-				cmd_byte_map[qm_port->is_directed][ev[i].op];
-			qe[i].sched_type = sched_type[i];
-			qe[i].data = ev[i].u64;
-			qe[i].qid = queue_id[i];
-			qe[i].priority = EV_TO_DLB_PRIO(ev[i].priority);
-			qe[i].lock_id = ev[i].flow_id;
-			if (sched_type[i] == DLB_SCHED_DIRECTED) {
-				struct dlb_msg_info *info =
-					(struct dlb_msg_info *)&qe[i].lock_id;
-
-				info->qid = queue_id[i];
-				info->sched_type = DLB_SCHED_DIRECTED;
-				info->priority = qe[i].priority;
-			}
-			qe[i].u.event_type.major = ev[i].event_type;
-			qe[i].u.event_type.sub = ev[i].sub_event_type;
-		}
-		break;
-	case 0:
-		break;
-	}
-}
-
-static inline void
-dlb_construct_token_pop_qe(struct dlb_port *qm_port, int idx)
-{
-	struct dlb_cq_pop_qe *qe = (void *)qm_port->qe4;
-	int num = qm_port->owed_tokens;
-
-	if (qm_port->use_rsvd_token_scheme) {
-		/* Check if there's a deficit of reserved tokens, and return
-		 * early if there are no (unreserved) tokens to consume.
-		 */
-		if (num <= qm_port->cq_rsvd_token_deficit) {
-			qm_port->cq_rsvd_token_deficit -= num;
-			qm_port->owed_tokens = 0;
-			return;
-		}
-		num -= qm_port->cq_rsvd_token_deficit;
-		qm_port->cq_rsvd_token_deficit = 0;
-	}
-
-	qe[idx].cmd_byte = DLB_POP_CMD_BYTE;
-	qe[idx].tokens = num - 1;
-	qm_port->owed_tokens = 0;
-}
-
-static __rte_always_inline void
-dlb_pp_write(struct dlb_enqueue_qe *qe4,
-	     struct process_local_port_data *port_data)
-{
-	dlb_movdir64b(port_data->pp_addr, qe4);
-}
-
-static inline void
-dlb_hw_do_enqueue(struct dlb_port *qm_port,
-		  bool do_sfence,
-		  struct process_local_port_data *port_data)
-{
-	DLB_LOG_DBG("dlb: Flushing QE(s) to DLB\n");
-
-	/* Since MOVDIR64B is weakly-ordered, use an SFENCE to ensure that
-	 * application writes complete before enqueueing the release HCW.
-	 */
-	if (do_sfence)
-		rte_wmb();
-
-	dlb_pp_write(qm_port->qe4, port_data);
-}
-
-static inline int
-dlb_consume_qe_immediate(struct dlb_port *qm_port, int num)
-{
-	struct process_local_port_data *port_data;
-	struct dlb_cq_pop_qe *qe;
-
-	RTE_ASSERT(qm_port->config_state == DLB_CONFIGURED);
-
-	if (qm_port->use_rsvd_token_scheme) {
-		/* Check if there's a deficit of reserved tokens, and return
-		 * early if there are no (unreserved) tokens to consume.
-		 */
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

subevent=%d\npp_id = %d, sched_type = %d, qid = %d, err=%d\n",

drivers/event/dlb/dlb.c deleted +0 -58

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

subevent=%d\npp_id = %d, sched_type = %d, qid = %d, err=%d\n",

drivers/event/dlb/dlb.c deleted +0 -471

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

underflowed.\n");

drivers/event/dlb/dlb.c deleted +0 -14

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

num,

drivers/event/dlb/dlb.c deleted +0 -78

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

wait)

drivers/event/dlb/dlb.c deleted +0 -206

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

%d\n",

drivers/event/dlb/dlb.c deleted +0 -241

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

'%s'\n",

drivers/event/dlb/dlb.c deleted +0 -70

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_iface.c deleted +0 -10
deleted file mode 100644
index 44f958f5d..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

ioctls
- * serviced by DLB kernel module.
- * If PCI (PF PMD), these will be implemented locally in user mode.
- */

drivers/event/dlb/dlb_iface.c deleted +0 -66

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_iface.h deleted +0 -9
deleted file mode 100644
index 9f61135ce..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

ioctls
- * serviced by DLB kernel module.
- * If PCI (PF PMD), these will be implemented locally in user mode.
- */

drivers/event/dlb/dlb_iface.h deleted +0 -70

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_inline_fns.h deleted +0 -36
deleted file mode 100644
index aae94dc3c..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_log.h deleted +0 -25
deleted file mode 100644
index c69c9e5be..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_priv.h deleted +0 -58
deleted file mode 100644
index 272e17482..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*/

drivers/event/dlb/dlb_priv.h deleted +0 -30

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*/

drivers/event/dlb/dlb_priv.h deleted +0 -425

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_selftest.c deleted +0 -163
deleted file mode 100644
index 8ab00ba87..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

__rte_unused)

drivers/event/dlb/dlb_selftest.c deleted +0 -6

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

events */

drivers/event/dlb/dlb_selftest.c deleted +0 -1372

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

failed\n",

drivers/event/dlb/dlb_selftest.c deleted +0 -3

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_user.h deleted +0 -151
deleted file mode 100644
index 2d9582b2b..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

the
- * resources (queues, ports, etc.) that it contains.
- *
- * Input parameters:
- * - num_ldb_queues: Number of load-balanced queues.
- * - num_ldb_ports: Number of load-balanced ports.
- * - num_dir_ports: Number of directed ports. A directed port has one directed
- * queue, so no num_dir_queues argument is necessary.
- * - num_atomic_inflights: This specifies the amount of temporary atomic QE
- * storage for the domain. This storage is divided among the domain's
- * load-balanced queues that are configured for atomic scheduling.
- * - num_hist_list_entries: Amount of history list storage. This is divided
- * among the domain's CQs.
- * - num_ldb_credits: Amount of load-balanced QE storage (QED). QEs occupy this
- * space until they are scheduled to a load-balanced CQ. One credit
- * represents the storage for one QE.
- * - num_dir_credits: Amount of directed QE storage (DQED). QEs occupy this
- * space until they are scheduled to a directed CQ. One credit represents
- * the storage for one QE.
- * - num_ldb_credit_pools: Number of pools into which the load-balanced credits
- * are placed.
- * - num_dir_credit_pools: Number of pools into which the directed credits are
- * placed.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: domain ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -24

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

directed
- * queue for every directed port.
- * - num_atomic_inflights: Amount of available temporary atomic QE storage.
- * - max_contiguous_atomic_inflights: When a domain is created, the temporary
- * atomic QE storage is allocated in a contiguous chunk. This return value
- * is the longest available contiguous range of atomic QE storage.
- * - num_hist_list_entries: Amount of history list storage.
- * - max_contiguous_hist_list_entries: History list storage is allocated in
- * a contiguous chunk, and this return value is the longest available
- * contiguous range of history list entries.
- * - num_ldb_credits: Amount of available load-balanced QE storage.
- * - max_contiguous_ldb_credits: QED storage is allocated in a contiguous
- * chunk, and this return value is the longest available contiguous range
- * of load-balanced credit storage.
- * - num_dir_credits: Amount of available directed QE storage.
- * - max_contiguous_dir_credits: DQED storage is allocated in a contiguous
- * chunk, and this return value is the longest available contiguous range
- * of directed credit storage.
- * - num_ldb_credit_pools: Number of available load-balanced credit pools.
- * - num_dir_credit_pools: Number of available directed credit pools.
- * - padding0: Reserved for future use.
- */

drivers/event/dlb/dlb_user.h deleted +0 -70

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

using
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: CQ poll mode (see enum dlb_cq_poll_modes).
- */

drivers/event/dlb/dlb_user.h deleted +0 -11

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

slot
- * - If configured for 512 sequence numbers per queue, the group has 2 slots
- * ...
- * - If configured for 32 sequence numbers per queue, the group has 32 slots
- *
- * This ioctl returns the group's number of in-use slots. If its occupancy is
- * 0, the group's sequence number allocation can be reconfigured.
- *
- * Input parameters:
- * - group: Sequence number group ID.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: Specified group's number of used slots.
- */

drivers/event/dlb/dlb_user.h deleted +0 -37

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

pool.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: Pool ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -12

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

QE
- * storage for this queue. If zero, the queue will not support atomic
- * scheduling.
- * - num_sequence_numbers: This specifies the number of sequence numbers used
- * by this queue. If zero, the queue will not support ordered scheduling.
- * If non-zero, the queue will not support unordered scheduling.
- * - num_qid_inflights: The maximum number of QEs that can be inflight
- * (scheduled to a CQ but not completed) at any time. If
- * num_sequence_numbers is non-zero, num_qid_inflights must be set equal
- * to num_sequence_numbers.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: Queue ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -14

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

created,
- * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
- * that the queue is being created before the port.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: Queue ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -12

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

to.
- * - dir_credit_pool_id: Directed credit pool this port will belong to.
- * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
- * that this port will own.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_high_watermark: Number of directed credits from the pool that
- * this port will own.
- *
- * If this port's scheduling domain does not have any directed queues,
- * this argument is ignored and the port is given no directed credits.
- * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
- * port's credits reach this watermark, they become eligible to be
- * refilled by the DLB as credits until the high watermark
- * (num_ldb_credits) is reached.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_low_watermark: Directed credit low watermark. When the port's
- * credits reach this watermark, they become eligible to be refilled by
- * the DLB as credits until the high watermark (num_dir_credits) is
- * reached.
- *
- * If this port's scheduling domain does not have any directed queues,
- * this argument is ignored and the port is given no directed credits.
- * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
- * per refill operation.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_quantum: Number of directed credits for the DLB to refill per
- * refill operation.
- *
- * If this port's scheduling domain does not have any directed queues,
- * this argument is ignored and the port is given no directed credits.
- * - padding0: Reserved for future use.
- * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
- * 1024, inclusive.
- * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
- * the CQ interrupt won't fire until there are N or more outstanding CQ
- * tokens.
- * - cq_history_list_size: Number of history list entries. This must be greater
- * than or equal to cq_depth.
- * - padding1: Reserved for future use.
- * - padding2: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: port ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -23

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

to.
- * - dir_credit_pool_id: Directed credit pool this port will belong to.
- * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
- * that this port will own.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_high_watermark: Number of directed credits from the pool that
- * this port will own.
- * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
- * port's credits reach this watermark, they become eligible to be
- * refilled by the DLB as credits until the high watermark
- * (num_ldb_credits) is reached.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_low_watermark: Directed credit low watermark. When the port's
- * credits reach this watermark, they become eligible to be refilled by
- * the DLB as credits until the high watermark (num_dir_credits) is
- * reached.
- * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
- * per refill operation.
- *
- * If this port's scheduling domain does not have any load-balanced
queues,
- * this argument is ignored and the port is given no load-balanced
- * credits.
- * - dir_credit_quantum: Number of directed credits for the DLB to refill per
- * refill operation.
- * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
- * 1024, inclusive.
- * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
- * the CQ interrupt won't fire until there are N or more outstanding CQ
- * tokens.
- * - qid: Queue ID. If the corresponding directed queue is already created,
- * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
- * that the port is being created before the queue.
- * - padding1: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: Port ID.
- */

drivers/event/dlb/dlb_user.h deleted +0 -20

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

This
- * must be called before passing QEs into the device, and no configuration
- * ioctls can be issued once the domain has started. Sending QEs into the
- * device before calling this ioctl will result in undefined behavior.
- * Input parameters:
- * - (None)
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- */

drivers/event/dlb/dlb_user.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port.
- * Input parameters:
- * - port_id: Load-balanced port ID.
- * - qid: Load-balanced queue ID.
- * - priority: Queue->port service priority.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- */

drivers/event/dlb/dlb_user.h deleted +0 -12

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

load-balanced
- * port.
- * Input parameters:
- * - port_id: Load-balanced port ID.
- * - qid: Load-balanced queue ID.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- */

drivers/event/dlb/dlb_user.h deleted +0 -10

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port.
- * Input parameters:
- * - port_id: Load-balanced port ID.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- */

drivers/event/dlb/dlb_user.h deleted +0 -28

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port.
- * Input parameters:
- * - port_id: Load-balanced port ID.
- * - padding0: Reserved for future use.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- */

drivers/event/dlb/dlb_user.h deleted +0 -69

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

in
- * progress for a load-balanced port.
- *
- * Note: This is a snapshot; the number of unmap operations in progress
- * is subject to change at any time.
- *
- * Input parameters:
- * - port_id: Load-balanced port ID.
- *
- * Output parameters:
- * - response: pointer to a struct dlb_cmd_response.
- * response.status: Detailed error code. In certain cases, such as if the
- * response pointer is invalid, the driver won't set status.
- * response.id: number of unmaps in progress.
- */

drivers/event/dlb/dlb_user.h deleted +0 -10

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

(PC)
- * memory space, and producer port (PP) MMIO space. The CQ, PC, and PP
- * addresses are per-port. Every address is page-separated (e.g. LDB PP 0 is at
- * 0x2100000 and LDB PP 1 is at 0x2101000).
- */

drivers/event/dlb/dlb_user.h deleted +0 -25

Lines of this file are not shown. View the raw message.

drivers/event/dlb/dlb_xstats.c deleted +0 -79
deleted file mode 100644
index 5f4c59030..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

values */

drivers/event/dlb/dlb_xstats.c deleted +0 -1133

Lines of this file are not shown. View the raw message.

drivers/event/dlb/meson.build deleted +0 -22
deleted file mode 100644
index bc158d2e0..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -34
deleted file mode 100644
index 4c40e2125..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

issue */

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -14

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

DLB_PF_NUM_NON_CQ_INTERRUPT_VECTORS

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -80

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

them
- * with a single data structure.
- */

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -104

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

slot)

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -65

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

one of
- * the following lists:
- * -- The PF's available resources list. These are unconfigured resources owned
- * by the PF and not allocated to a DLB scheduling domain.
- * -- A domain's available resources list. These are domain-owned unconfigured
- * resources.
- * -- A domain's used resources list. These are domain-owned configured
- * resources.
- *
- * A resource moves to a new list when a domain is created or destroyed, or
- * when the resource is configured.
- */

drivers/event/dlb/pf/base/dlb_hw_types.h deleted +0 -24

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -27
deleted file mode 100644
index 0c119b759..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

(reg)))

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -6

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

(reg)))

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

queue
- * unregister acknowledgments.
- */

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -30

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

DLB_DIR_PP_BASE)
-/**
- * os_map_producer_port() - map a producer port into the caller's address space
- * @hw: dlb_hw handle for a particular device.
- * @port_id: port ID
- * @is_ldb: true for load-balanced port, false for a directed port
- *
- * This function maps the requested producer port memory into the caller's
- * address space.
- *
- * Return:
- * Returns the base address at which the PP memory was mapped, else NULL.
- */

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -19

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port
- * memory from the caller's address space.
- *
- * Return:
- * Returns the base address at which the PP memory was mapped, else NULL.
- */

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -2

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*/

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -91

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

work
- * @hw: dlb_hw handle for a particular device.
- *
- * This function launches a thread that will run until all pending
- * map and unmap procedures are complete.
- */

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -23

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

active
- * @hw: dlb_hw handle for a particular device.
- *
- * This function returns a boolean indicating whether a thread (launched by
- * os_schedule_work()) is active. This function is used to determine
- * whether or not to launch a worker thread.
- */

drivers/event/dlb/pf/base/dlb_osdep.h deleted +0 -74

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -32
deleted file mode 100644
index 4c10c8c5d..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

All
- * entries are initially zero.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise.
- *
- * Errors:
- * EINVAL - bitmap is NULL or len is 0.
- * ENOMEM - could not allocate memory for the bitmap data structure.
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -48

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

dlb_bitmap_alloc().
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -93

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

bitmap
- * length.
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -55

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

bitmap
- * length.
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -118

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

bits
- * @bitmap: pointer to dlb_bitmap structure.
- *
- * Return:
- * Returns the bitmap's longest contiguous range of set bits upon success,
- * <0 otherwise.
- *
- * Errors:
- * EINVAL - bitmap is NULL or is uninitialized.
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -30

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

of
- * the 'or' of src1 and src2.
- * @src1: pointer to dlb_bitmap structure, will be 'or'ed with src2.
- * @src2: pointer to dlb_bitmap structure, will be 'or'ed with src1.
- *
- * This function 'or's two bitmaps together and stores the result in a third
- * bitmap. The source and destination bitmaps can be the same.
- *
- * Return:
- * Returns the number of set bits upon success, <0 otherwise.
- *
- * Errors:
- * EINVAL - One of the bitmaps is NULL or is uninitialized.
- */

drivers/event/dlb/pf/base/dlb_osdep_bitmap.h deleted +0 -29

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_osdep_list.h deleted +0 -122
deleted file mode 100644
index a53b3626e..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

(temporary)
- * @head: list head
- * @name: name of the dlb_list_entry field within the containing struct
- * @iter: iterator variable
- * @iter_tmp: iterator variable (temporary)
- */
-#define DLB_LIST_FOR_EACH_SAFE(head, ptr, ptr_tmp, name, tmp_iter, saf_iter) \

drivers/event/dlb/pf/base/dlb_osdep_list.h deleted +0 -3

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_osdep_types.h deleted +0 -31
deleted file mode 100644
index 2e9d7d8d0..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_regs.h deleted +0 -2368
deleted file mode 100644
index a1c63f336..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -216
deleted file mode 100644
index 4984de5d3..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

id)

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -497

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*rsrcs,

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -396

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

(%d -> %d)\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -6

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

their
- * function names imply, and should only be called by the dynamic CQ mapping
- * code.
- */

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -324

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

occur
- * at a later point, and <0 if an error occurred.
- */

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -356

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

domains.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -764

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

completions.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -399

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*port)

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -275

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

credits.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -656

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

function's bitmap.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -17

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

bitmap.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -16

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

function's bitmap.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -16

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

function's bitmap.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -86

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

result.
- *
- * Return: returns < 0 on error, 0 otherwise.
- */

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -283

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

group_id)

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -265

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

resources\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -802

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

and
- * its resources.
- * @hw: Contains the current state of the DLB hardware.
- * @args: User-provided arguments.
- * @resp: Response to user.
- *
- * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
- * satisfy a request, resp->status will be set accordingly.
- */

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -49

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

ports.\n",

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -510

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

and
- * queue. The port/queue pair have the same ID and name.
- * @hw: Contains the current state of the DLB hardware.
- * @args: User-provided arguments.
- * @resp: Response to user.
- *
- * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
- * satisfy a request, resp->status will be set accordingly.
- */

drivers/event/dlb/pf/base/dlb_resource.c deleted +0 -947

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -15
deleted file mode 100644
index 4f48b73fd..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

hw
- * argument) and programs global scheduling QoS registers. This function should
- * be called during driver initialization.
- *
- * The dlb_hw struct must be unique per DLB device and persist until the device
- * is reset.
- *
- * Return:
- * Returns 0 upon success, -1 otherwise.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -16

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

use.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -9

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

specified
- * in args. The individual resources (queues, ports, credit pools) can be
- * configured after creating a scheduling domain.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the domain ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, or the requested domain name
- * is already in use.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -12

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

of
- * requested credits.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the pool ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, the domain is not configured,
- * or the domain has already been started.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -17

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the pool ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, the domain is not configured,
- * or the domain has already been started.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -16

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the queue ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, the domain is not configured,
- * the domain has already been started, or the requested queue name is
- * already in use.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -16

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the queue ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, the domain is not configured,
- * or the domain has already been started.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -13

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

IOVA.
- * @resp: response structure.
- *
- * This function creates a directed port.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the port ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, a credit setting is invalid, a
- * pool ID is invalid, a pointer address is not properly aligned, the
- * domain is not configured, or the domain has already been started.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -15

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

IOVA.
- * @resp: response structure.
- *
- * This function creates a load-balanced port.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the port ID.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, a credit setting is invalid, a
- * pool ID is invalid, a pointer address is not properly aligned, the
- * domain is not configured, or the domain has already been started.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -15

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

send
- * traffic through it. Once a domain is started, its resources can no longer be
- * configured (besides QID remapping and port enable/disable).
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - the domain is not configured, or the domain is already started.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -13

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

queue to
- * the specified port. Each load-balanced port can be mapped to up to 8 queues;
- * each load-balanced queue can potentially map to all the load-balanced ports.
- *
- * A successful return does not necessarily mean the mapping was configured. If
- * this function is unable to immediately map the queue to the port, it will
- * add the requested operation to a per-port list of pending map/unmap
- * operations, and (if it's not already running) launch a kernel thread that
- * periodically attempts to process all pending operations. In a sense, this is
- * an asynchronous function.
- *
- * This asynchronicity creates two views of the state of hardware: the actual
- * hardware state and the requested state (as if every request completed
- * immediately). If there are any pending map/unmap operations, the requested
- * state will differ from the actual state. All validation is performed with
- * respect to the pending state; for instance, if there are 8 pending map
- * operations for port X, a request for a 9th will fail because a load-balanced
- * port can only map up to 8 queues.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, invalid port or queue ID, or
- * the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -7

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port
- * @hw: dlb_hw handle for a particular device.
- * @domain_id: domain ID.
- * @args: unmap QID arguments.
- * @resp: response structure.
- *
- * This function configures the DLB to stop scheduling QEs from the specified
- * queue to the specified port.
- *
- * A successful return does not necessarily mean the mapping was removed. If
- * this function is unable to immediately unmap the queue from the port, it
- * will add the requested operation to a per-port list of pending map/unmap
- * operations, and (if it's not already running) launch a kernel thread that
- * periodically attempts to process all pending operations. See
- * dlb_hw_map_qid() for more details.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - A requested resource is unavailable, invalid port or queue ID, or
- * the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -39

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port.
- * Ports are enabled by default.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - The port ID is invalid or the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -13

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

load-balanced
- * port. Ports are enabled by default.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - The port ID is invalid or the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -17

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - The port ID is invalid or the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -13

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

port.
- * Ports are enabled by default.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error.
- *
- * Errors:
- * EINVAL - The port ID is invalid or the domain is not configured.
- * EFAULT - Internal error (resp->status not set).
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -7

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

interrupts
- * @hw: dlb_hw handle for a particular device.
- * @port_id: load-balancd port ID.
- * @vector: interrupt vector ID. Should be 0 for MSI or compressed MSI-X mode,
- * else a value up to 64.
- * @mode: interrupt type (DLB_CQ_ISR_MODE_MSI or DLB_CQ_ISR_MODE_MSIX)
- * @threshold: the minimum CQ depth at which the interrupt can fire. Must be
- * greater than 0.
- *
- * This function configures the DLB registers for load-balanced CQ's interrupts.
- * This doesn't enable the CQ's interrupt; that can be done with
- * dlb_arm_cq_interrupt() or through an interrupt arm QE.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise.
- *
- * Errors:
- * EINVAL - The port ID is invalid.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -11

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

mode,
- * else a value up to 64.
- * @mode: interrupt type (DLB_CQ_ISR_MODE_MSI or DLB_CQ_ISR_MODE_MSIX)
- * @threshold: the minimum CQ depth at which the interrupt can fire. Must be
- * greater than 0.
- *
- * This function configures the DLB registers for directed CQ's interrupts.
- * This doesn't enable the CQ's interrupt; that can be done with
- * dlb_arm_cq_interrupt() or through an interrupt arm QE.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise.
- *
- * Errors:
- * EINVAL - The port ID is invalid.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

interrupts
- * @hw: dlb_hw handle for a particular device.
- *
- * This function configures the ingress error alarm. (Other alarms are enabled
- * by default.)
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

interrupts
- * @hw: dlb_hw handle for a particular device.
- *
- * This function configures the ingress error alarm. (Other alarms are disabled
- * by default.)
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

compressed
- * mode. This function should not be called if using MSI interrupts.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -9

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

to
- * calling this function.
- *
- * The function does no parameter validation; that is the caller's
- * responsibility.
- *
- * Return: returns 0 upon success, <0 otherwise.
- *
- * EINVAL - Invalid port ID.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

status
- * @hw: dlb_hw handle for a particular device.
- * @ldb_interrupts: 2-entry array of u32 bitmaps
- * @dir_interrupts: 4-entry array of u32 bitmaps
- *
- * This function can be called from a compressed CQ interrupt handler to
- * determine which CQ interrupts have fired. The caller should take appropriate
- * (such as waking threads blocked on a CQ's interrupt) then ack the interrupts
- * with dlb_ack_compressed_cq_intr().
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -11

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

the
- * same ones passed to dlb_read_compressed_cq_intr_status().
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -9

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

interrupt.
- * This function should be called from the alarm interrupt handler when
- * interrupt vector DLB_INT_ALARM fires.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

interrupts
- * @hw: dlb_hw handle for a particular device.
- *
- * This function reads the alarm syndrome, logs it, notifies user-space, and
- * acks the interrupt. This function should be called from the alarm interrupt
- * handler when interrupt vector DLB_INT_INGRESS_ERROR fires.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

queue
- * @hw: dlb_hw handle for a particular device.
- * @group_id: sequence number group ID.
- *
- * This function returns the configured number of sequence numbers per queue
- * for the specified group.
- *
- * Return:
- * Returns -EINVAL if group_id is invalid, else the group's SNs per queue.
- */
-int dlb_get_group_sequence_numbers(struct dlb_hw *hw, unsigned int group_id);

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -3

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

slots
- * @hw: dlb_hw handle for a particular device.
- * @group_id: sequence number group ID.
- *
- * This function returns the group's number of in-use slots (i.e. load-balanced
- * queues using the specified group).
- *
- * Return:
- * Returns -EINVAL if group_id is invalid, else the group's occupancy.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -5

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

queue
- * @hw: dlb_hw handle for a particular device.
- * @group_id: sequence number group ID.
- * @val: requested amount of sequence numbers per queue.
- *
- * This function configures the group's number of sequence numbers per queue.
- * val can be a power-of-two between 32 and 1024, inclusive. This setting can
- * be configured until the first ordered load-balanced queue is configured, at
- * which point the configuration is locked.
- *
- * Return:
- * Returns 0 upon success; -EINVAL if group_id or val is invalid, -EPERM if an
- * ordered queue is configured.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -10

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

associated
- * resources.
- *
- * Pre-condition: the driver must ensure software has stopped sending QEs
- * through this domain's producer ports before invoking this function, or
- * undefined behavior will result.
- *
- * Return:
- * Returns 0 upon success, -1 otherwise.
- *
- * EINVAL - Invalid domain ID, or the domain is not configured.
- * EFAULT - Internal error. (Possibly caused if software is the pre-condition
- * is not met.)
- * ETIMEDOUT - Hardware component didn't reset in the expected time.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

domain
- * @hw: dlb_hw handle for a particular device.
- * @domain_id: domain ID.
- * @port_id: port ID.
- *
- * This function returns whether a load-balanced port is owned by a specified
- * domain.
- *
- * Return:
- * Returns 0 if false, 1 if true, <0 otherwise.
- *
- * EINVAL - Invalid domain or port ID, or the domain is not configured.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -6

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

domain
- * @hw: dlb_hw handle for a particular device.
- * @domain_id: domain ID.
- * @port_id: port ID.
- *
- * This function returns whether a directed port is owned by a specified
- * domain.
- *
- * Return:
- * Returns 0 if false, 1 if true, <0 otherwise.
- *
- * EINVAL - Invalid domain or port ID, or the domain is not configured.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -6

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

resources
- * @arg: pointer to resource counts.
- *
- * This function returns the number of available resources for the PF.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -5

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

resources
- * @arg: pointer to resource counts.
- *
- * This function returns the number of resources in use by the PF. It fills in
- * the fields that args points to, except the following:
- * - max_contiguous_atomic_inflights
- * - max_contiguous_hist_list_entries
- * - max_contiguous_ldb_credits
- * - max_contiguous_dir_credits
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -5

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

hardware
- * @hw: dlb_hw handle for a particular device.
- *
- * This function disables certain hardware in the directed pipe,
- * necessary to workaround a DLB VAS reset issue.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

token
- * pop alarm
- * @hw: dlb_hw handle for a particular device.
- *
- * This function enables the PF ingress error alarm interrupt to fire when an
- * excess token pop occurs.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

token
- * pop alarm
- * @hw: dlb_hw handle for a particular device.
- *
- * This function disables the PF ingress error alarm interrupt to fire when an
- * excess token pop occurs.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

queue
- * @hw: dlb_hw handle for a particular device.
- * @domain_id: domain ID.
- * @args: queue depth args
- *
- * This function returns the depth of a load-balanced queue.
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the depth.
- *
- * Errors:
- * EINVAL - Invalid domain ID or queue ID.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -15

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the depth.
- *
- * Errors:
- * EINVAL - Invalid domain ID or queue ID.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -7

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

in
- * progress for a load-balanced port.
- * @hw: dlb_hw handle for a particular device.
- * @domain_id: domain ID.
- * @args: number of unmaps in progress args
- *
- * Return:
- * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
- * assigned a detailed error code from enum dlb_error. If successful, resp->id
- * contains the number of unmaps in progress.
- *
- * Errors:
- * EINVAL - Invalid port ID.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -7

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

load-balanced
- * ports.
- * @hw: dlb_hw handle for a particular device.
- *
- * This function must be called prior to configuring scheduling domains.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

ports
- * @hw: dlb_hw handle for a particular device.
- *
- * This function must be called prior to configuring scheduling domains.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

are
- * reduced to 4 bins, the mapping is:
- * - weight[1] programs bin 0
- * - weight[3] programs bin 1
- * - weight[5] programs bin 2
- * - weight[7] programs bin 3
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -8

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

are
- * reduced to 4 bins, the mapping is:
- * - weight[1] programs bin 0
- * - weight[3] programs bin 1
- * - weight[5] programs bin 2
- * - weight[7] programs bin 3
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

producer
- * ports
- * @hw: dlb_hw handle for a particular device.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

producer
- * ports
- * @hw: dlb_hw handle for a particular device.
- */

drivers/event/dlb/pf/base/dlb_resource.h deleted +0 -17

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/dlb_main.c deleted +0 -66
deleted file mode 100644
index 264350e28..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

id)

drivers/event/dlb/pf/dlb_main.c deleted +0 -53

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

offset %d\n",

drivers/event/dlb/pf/dlb_main.c deleted +0 -206

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

%d\n",

drivers/event/dlb/pf/dlb_main.c deleted +0 -12

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

%d\n",

drivers/event/dlb/pf/dlb_main.c deleted +0 -215

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/dlb_main.h deleted +0 -47
deleted file mode 100644
index 22e215223..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/pf/dlb_pf.c deleted +0 -246
deleted file mode 100644
index 3aeef6f91..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

*phys,

drivers/event/dlb/pf/dlb_pf.c deleted +0 -506

Lines of this file are not shown. View the raw message.

drivers/event/dlb/rte_pmd_dlb.c deleted +0 -38
deleted file mode 100644
index 8f56dc306..000000000

Lines of this file are not shown. View the raw message.

drivers/event/dlb/rte_pmd_dlb.h deleted +0 -23
deleted file mode 100644
index 9cf6dd338..000000000

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

notice
- *
- * Selects the token pop mode for an DLB port.
- */

drivers/event/dlb/rte_pmd_dlb.h deleted +0 -17

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

notice
- *
- * Configure the token pop mode for an DLB port. By default, all ports use
- * AUTO_POP. This function must be called before calling rte_event_port_setup()
- * for the port, but after calling rte_event_dev_configure().
- *
- * @note
- * The defer_sched vdev arg, which configures all load-balanced ports
with
- * dequeue_depth == 1 for DEFERRED_POP mode, takes precedence over this
- * function.
- *
- * @param dev_id
- * The identifier of the event device.
- * @param port_id
- * The identifier of the event port.
- * @param mode
- * The token pop mode.
- *
- * @return
- * - 0: Success
- * - EINVAL: Invalid dev_id, port_id, or mode
- * - EINVAL: The DLB is not configured, is already running, or the port is
- * already setup
- */

drivers/event/dlb/rte_pmd_dlb.h deleted +0 -11

Lines of this file are not shown. View the raw message.

drivers/event/dlb/version.map deleted +0 -9
deleted file mode 100644
index 3338a22c1..000000000

Lines of this file are not shown. View the raw message.

drivers/event/meson.build +1 -1
index a49288a5d..b7f9bf7c6 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

dpdk_conf.has('RTE_ARCH_ARM64'))
--
2.23.0

Part of the diff is not shown here. View the raw message.