[PATCH 2/2] event/cnxk: honor event limit set by config

pbhagavatula at marvell.com pbhagavatula at marvell.com
Wed May 24 10:52:33 CEST 2023


From: Pavan Nikhilesh <pbhagavatula at marvell.com>

Honor the number of events configured during event device
configuration.

Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
---
 drivers/event/cnxk/cnxk_eventdev.c | 7 ++++++-
 drivers/event/cnxk/cnxk_eventdev.h | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c
index 3a05a59c75..f356913384 100644
--- a/drivers/event/cnxk/cnxk_eventdev.c
+++ b/drivers/event/cnxk/cnxk_eventdev.c
@@ -39,7 +39,11 @@ cnxk_sso_xaq_allocate(struct cnxk_sso_evdev *dev)
 	uint32_t xae_cnt;
 	int rc;
 
-	xae_cnt = dev->sso.iue;
+	if (dev->num_events > 0)
+		xae_cnt = dev->num_events;
+	else
+		xae_cnt = dev->sso.iue;
+
 	if (dev->xae_cnt)
 		xae_cnt += dev->xae_cnt;
 	if (dev->adptr_xae_cnt)
@@ -189,6 +193,7 @@ cnxk_sso_dev_validate(const struct rte_eventdev *event_dev, uint32_t deq_depth,
 
 	dev->nb_event_queues = conf->nb_event_queues;
 	dev->nb_event_ports = conf->nb_event_ports;
+	dev->num_events = conf->nb_events_limit;
 
 	return 0;
 }
diff --git a/drivers/event/cnxk/cnxk_eventdev.h b/drivers/event/cnxk/cnxk_eventdev.h
index e612a77425..be3923b213 100644
--- a/drivers/event/cnxk/cnxk_eventdev.h
+++ b/drivers/event/cnxk/cnxk_eventdev.h
@@ -89,6 +89,7 @@ struct cnxk_sso_evdev {
 	uint32_t min_dequeue_timeout_ns;
 	uint32_t max_dequeue_timeout_ns;
 	int32_t max_num_events;
+	int32_t num_events;
 	uint64_t xaq_lmt;
 	int64_t *fc_cache_space;
 	rte_iova_t fc_iova;
-- 
2.25.1



More information about the dev mailing list