From: Jun Yang <[email protected]>

The array tracking Rx queues attached to an event queue used a
separate DPAA2_EVENTQ_DPNI_RXQ_ATTACH_MAX (128) bound, which was
unrelated to the event queue flow limit. Reuse the existing
DPAA2_EVENT_MAX_QUEUE_FLOWS limit instead so a single value governs
how many flows can target one event queue.

Reduce DPAA2_EVENT_MAX_QUEUE_FLOWS from 2048 to 1024, size the
dpni_rxqs[] array by that limit, and drop the now unused
DPAA2_EVENTQ_DPNI_RXQ_ATTACH_MAX define. Widen dpni_rxq_num and the
local attach index to uint16_t so they can hold the larger count, and
update the attach error message to report the offending event queue.

Signed-off-by: Jun Yang <[email protected]>
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 6 +++---
 drivers/event/dpaa2/dpaa2_eventdev.h | 7 +++----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c 
b/drivers/event/dpaa2/dpaa2_eventdev.c
index be6d8bc3da..cd2b00c3c9 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -48,11 +48,11 @@ dpaa2_eventdev_attach_eth_rxq(const struct rte_eth_dev *dev,
 {
        int ret;
        uint8_t ev_qid = queue_conf->ev.queue_id;
-       uint8_t idx = priv->evq_info[ev_qid].dpni_rxq_num;
+       uint16_t idx = priv->evq_info[ev_qid].dpni_rxq_num;
        struct dpaa2_dpcon_dev *dpcon = priv->evq_info[ev_qid].dpcon;
 
-       if (idx >= DPAA2_EVENTQ_DPNI_RXQ_ATTACH_MAX) {
-               DPAA2_EVENTDEV_ERR("Too many queues to attach.");
+       if (idx >= DPAA2_EVENT_MAX_QUEUE_FLOWS) {
+               DPAA2_EVENTDEV_ERR("Too many flows to attach eventq%d", ev_qid);
                return -ENOMEM;
        }
        ret = dpaa2_eth_eventq_attach(dev, rxq_id, dpcon, queue_conf);
diff --git a/drivers/event/dpaa2/dpaa2_eventdev.h 
b/drivers/event/dpaa2/dpaa2_eventdev.h
index 0a98088fe1..adeb22bda6 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.h
+++ b/drivers/event/dpaa2/dpaa2_eventdev.h
@@ -19,7 +19,7 @@
 #define DPAA2_EVENT_MIN_DEQUEUE_TIMEOUT                1
 #define DPAA2_EVENT_MAX_DEQUEUE_TIMEOUT                (UINT32_MAX - 1)
 #define DPAA2_EVENT_PORT_DEQUEUE_TIMEOUT_NS    100UL
-#define DPAA2_EVENT_MAX_QUEUE_FLOWS            2048
+#define DPAA2_EVENT_MAX_QUEUE_FLOWS            1024
 #define DPAA2_EVENT_MAX_QUEUE_PRIORITY_LEVELS  8
 #define DPAA2_EVENT_MAX_EVENT_PRIORITY_LEVELS  0
 #define DPAA2_EVENT_MAX_NUM_EVENTS             (INT32_MAX - 1)
@@ -52,7 +52,6 @@ enum {
  */
 
 #define DPAA2_EVENTQ_LINK_CONF_MAX 4 /** Max schedule type + 1.*/
-#define DPAA2_EVENTQ_DPNI_RXQ_ATTACH_MAX 128
 struct dpaa2_eventq {
        int valid;
        void *event_port;
@@ -64,8 +63,8 @@ struct dpaa2_eventq {
        uint32_t event_queue_cfg;
        uint32_t event_queue_id;
        struct dpaa2_queue *dpci_txqs[DPAA2_EVENTQ_LINK_CONF_MAX];
-       uint8_t dpni_rxq_num;
-       struct dpaa2_queue *dpni_rxqs[DPAA2_EVENTQ_DPNI_RXQ_ATTACH_MAX];
+       uint16_t dpni_rxq_num;
+       struct dpaa2_queue *dpni_rxqs[DPAA2_EVENT_MAX_QUEUE_FLOWS];
 };
 
 struct dpaa2_port {
-- 
2.43.0

Reply via email to