From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
To: Bruce Richardson <bruce.richardson@intel.com>,
Jerin Jacob <jerin.jacob@caviumnetworks.com>,
Pablo de Lara <pablo.de.lara.guarch@intel.com>
Cc: Anoob Joseph <anoob.joseph@caviumnetworks.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>,
Narayana Prasad <narayanaprasad.athreya@caviumnetworks.com>,
Nikhil Rao <nikhil.rao@intel.com>,
Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>,
Sunil Kumar Kori <sunil.kori@nxp.com>,
dev@dpdk.org
Subject: [dpdk-dev] [PATCH 08/20] eventdev: add eventdev port-lcore link
Date: Fri, 8 Jun 2018 22:54:07 +0530 [thread overview]
Message-ID: <1528478659-15859-9-git-send-email-anoob.joseph@caviumnetworks.com> (raw)
In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com>
Adding eventdev port-lcore link. In addition, this will also specify
which event queue need to be connected to the event port.
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
---
lib/librte_eventdev/rte_eventmode_helper.c | 56 ++++++++++++++++++++++
lib/librte_eventdev/rte_eventmode_helper.h | 12 +++++
.../rte_eventmode_helper_internal.h | 12 +++++
3 files changed, 80 insertions(+)
diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c
index e55d4aa..b3469f9 100644
--- a/lib/librte_eventdev/rte_eventmode_helper.c
+++ b/lib/librte_eventdev/rte_eventmode_helper.c
@@ -46,6 +46,24 @@ internal_parse_decimal(const char *str)
return num;
}
+static struct eventdev_params *
+internal_get_eventdev_params(struct eventmode_conf *em_conf,
+ uint8_t eventdev_id)
+{
+ int i;
+
+ for (i = 0; i < em_conf->nb_eventdev; i++) {
+ if (em_conf->eventdev_config[i].eventdev_id == eventdev_id)
+ break;
+ }
+
+ /* No match */
+ if (i == em_conf->nb_eventdev)
+ return NULL;
+
+ return &(em_conf->eventdev_config[i]);
+}
+
/* Global functions */
void
@@ -165,10 +183,12 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf)
struct rte_event_dev_config eventdev_conf;
struct rte_event_dev_info evdev_default_conf;
struct rte_event_queue_conf eventq_conf = {0};
+ struct rte_eventmode_helper_event_link_info *link;
struct eventdev_params *eventdev_config;
int nb_eventdev = em_conf->nb_eventdev;
int nb_eventqueue;
uint8_t eventdev_id;
+ uint8_t *queue = NULL;
for (i = 0; i < nb_eventdev; i++) {
@@ -257,6 +277,42 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf)
}
}
+ /* Make event queue - event port link */
+ for (j = 0; j < em_conf->nb_link; j++) {
+
+ /* Get link info */
+ link = &(em_conf->link[j]);
+
+ /* Get event dev ID */
+ eventdev_id = link->eventdev_id;
+
+ queue = &(link->eventq_id);
+
+ /* Link queue to port */
+ ret = rte_event_port_link(eventdev_id, link->event_portid,
+ queue, NULL, 1);
+ if (ret < 0) {
+ RTE_EM_HLPR_LOG_ERR("Error in event port linking");
+ return ret;
+ }
+
+ /* Link ATOMIC eth tx queue also to the port */
+
+ /* Get the corresponding eventdev config */
+ eventdev_config = internal_get_eventdev_params(em_conf,
+ eventdev_id);
+
+ /* Last queue would be reserved for eth tx */
+ ret = rte_event_port_link(eventdev_id,
+ link->event_portid,
+ &(eventdev_config->nb_eventqueue), NULL, 1);
+
+ if (ret < 0) {
+ RTE_EM_HLPR_LOG_ERR("Error in event port linking");
+ return ret;
+ }
+ }
+
/* Start event devices */
for (i = 0; i < nb_eventdev; i++) {
diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h
index e1e8a3b..1ade32f 100644
--- a/lib/librte_eventdev/rte_eventmode_helper.h
+++ b/lib/librte_eventdev/rte_eventmode_helper.h
@@ -24,6 +24,18 @@ struct rte_eventmode_helper_conf {
/**< Mode specific parameters */
};
+/* Event-lcore link conf */
+struct rte_eventmode_helper_event_link_info {
+ uint8_t eventdev_id;
+ /**< Event device ID */
+ uint8_t event_portid;
+ /**< Event port ID */
+ uint8_t eventq_id;
+ /**< Event queue to be linked to the port */
+ uint8_t lcore_id;
+ /**< Lcore to be polling on this port */
+};
+
/* Common helper functions for command line parsing */
/**
diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h
index 4cd5ac4..36e2a5f 100644
--- a/lib/librte_eventdev/rte_eventmode_helper_internal.h
+++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h
@@ -30,6 +30,13 @@
/* Max event devices supported */
#define EVENT_MODE_MAX_EVENT_DEVS RTE_EVENT_MAX_DEVS
+/* Max event queues supported per event device */
+#define EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV RTE_EVENT_MAX_QUEUES_PER_DEV
+
+/* Max event-lcore links */
+#define EVENT_MODE_MAX_LCORE_LINKS \
+ (EVENT_MODE_MAX_EVENT_DEVS * EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV)
+
/* Event dev params */
struct eventdev_params {
uint8_t eventdev_id;
@@ -44,6 +51,11 @@ struct eventmode_conf {
/**< No of event devs */
struct eventdev_params eventdev_config[EVENT_MODE_MAX_EVENT_DEVS];
/**< Per event dev conf */
+ uint8_t nb_link;
+ /**< No of links */
+ struct rte_eventmode_helper_event_link_info
+ link[EVENT_MODE_MAX_LCORE_LINKS];
+ /**< Per link conf */
};
#endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */
--
2.7.4
next prev parent reply other threads:[~2018-06-08 17:25 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-08 17:23 [dpdk-dev] [PATCH 00/20] add eventmode helper functions Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 01/20] eventdev: add files for eventmode helper Anoob Joseph
2018-06-27 6:20 ` Sunil Kumar Kori
2018-06-28 10:43 ` Joseph, Anoob
2018-06-28 10:47 ` Ananyev, Konstantin
2018-06-28 10:58 ` Joseph, Anoob
2018-06-28 11:44 ` Ananyev, Konstantin
2018-06-28 11:54 ` Joseph, Anoob
2018-07-03 6:27 ` Sunil Kumar Kori
2018-07-03 13:13 ` Joseph, Anoob
2018-07-04 10:49 ` Sunil Kumar Kori
2018-06-08 17:24 ` [dpdk-dev] [PATCH 02/20] eventdev: add routines for logging " Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 03/20] eventdev: add eventmode CL options framework Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 04/20] eventdev: allow application to set ethernet portmask Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 05/20] eventdev: add framework for eventmode conf Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 06/20] eventdev: add common initialize routine for eventmode devs Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 07/20] eventdev: add eventdevice init for eventmode Anoob Joseph
2018-06-08 17:24 ` Anoob Joseph [this message]
2018-06-08 17:24 ` [dpdk-dev] [PATCH 09/20] eventdev: add option to specify schedule mode for app stage Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 10/20] eventdev: add placeholder for ethdev init Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 11/20] eventdev: add Rx adapter init in eventmode Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 12/20] eventdev: add routine to validate conf Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 13/20] eventdev: add default conf for event devs field in conf Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 14/20] eventdev: add default conf for Rx adapter conf Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 15/20] eventdev: add default conf for event port-lcore link Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 16/20] eventdev: add routines to display the eventmode conf Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 17/20] eventdev: add routine to access eventmode link info Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 18/20] eventdev: add routine to access event queue for eth Tx Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 19/20] eventdev: add routine to launch eventmode workers Anoob Joseph
2018-06-08 17:24 ` [dpdk-dev] [PATCH 20/20] examples/l2fwd: add eventmode for l2fwd Anoob Joseph
2018-06-11 8:32 ` [dpdk-dev] [PATCH 00/20] add eventmode helper functions Jerin Jacob
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1528478659-15859-9-git-send-email-anoob.joseph@caviumnetworks.com \
--to=anoob.joseph@caviumnetworks.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=hemant.agrawal@nxp.com \
--cc=jerin.jacob@caviumnetworks.com \
--cc=narayanaprasad.athreya@caviumnetworks.com \
--cc=nikhil.rao@intel.com \
--cc=pablo.de.lara.guarch@intel.com \
--cc=pbhagavatula@caviumnetworks.com \
--cc=sunil.kori@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).