From: Anoob Joseph <anoobj@marvell.com> To: Jerin Jacob <jerinj@marvell.com>, Nikhil Rao <nikhil.rao@intel.com>, "Erik Gabriel Carrillo" <erik.g.carrillo@intel.com>, Abhinandan Gujjar <abhinandan.gujjar@intel.com>, Bruce Richardson <bruce.richardson@intel.com>, Pablo de Lara <pablo.de.lara.guarch@intel.com> Cc: "Anoob Joseph" <anoobj@marvell.com>, "Narayana Prasad" <pathreya@marvell.com>, dev@dpdk.org, "Lukasz Bartosik" <lbartosik@marvell.com>, "Pavan Nikhilesh" <pbhagavatula@marvell.com>, "Hemant Agrawal" <hemant.agrawal@nxp.com>, "Nipun Gupta" <nipun.gupta@nxp.com>, "Harry van Haaren" <harry.van.haaren@intel.com>, "Mattias Rönnblom" <mattias.ronnblom@ericsson.com>, "Liang Ma" <liang.j.ma@intel.com> Subject: [dpdk-dev] [PATCH 19/39] eventdev: add common initialize routine for eventmode devs Date: Mon, 3 Jun 2019 23:02:19 +0530 Message-ID: <1559583160-13944-20-git-send-email-anoobj@marvell.com> (raw) In-Reply-To: <1559583160-13944-1-git-send-email-anoobj@marvell.com> Adding framework for common initialization routine for event mode. Event mode would involve initialization of multiple devices, like eventdev, ethdev etc and this routine would be the placeholder for all initialization to come in. Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-off-by: Lukasz Bartosik <lbartosik@marvell.com> --- lib/librte_eventdev/rte_eventdev_version.map | 2 ++ lib/librte_eventdev/rte_eventmode_helper.c | 51 +++++++++++++++++++++++++++- lib/librte_eventdev/rte_eventmode_helper.h | 26 +++++++++++++- 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 1199064..e156fa0 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -130,4 +130,6 @@ EXPERIMENTAL { rte_event_eth_rx_adapter_stats_get; rte_eventmode_helper_print_options_list; rte_eventmode_helper_print_options_description; + rte_eventmode_helper_parse_args; + rte_eventmode_helper_initialize_devs; }; diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 38f1a2b..d1a569b 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -3,6 +3,7 @@ */ #include <getopt.h> +#include <rte_ethdev.h> #include <rte_eventmode_helper.h> #include <rte_malloc.h> @@ -92,7 +93,7 @@ em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) conf->eth_portmask = -1; } -struct rte_eventmode_helper_conf * +struct rte_eventmode_helper_conf * __rte_experimental rte_eventmode_helper_parse_args(int argc, char **argv) { int32_t opt, ret; @@ -152,3 +153,51 @@ rte_eventmode_helper_parse_args(int argc, char **argv) return NULL; } + +int32_t __rte_experimental +rte_eventmode_helper_initialize_devs( + struct rte_eventmode_helper_conf *mode_conf) +{ + int ret; + uint16_t portid; + + if (mode_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid conf"); + return -1; + } + + if (mode_conf->mode != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT) + return 0; + + if (mode_conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid mode params"); + return -1; + } + + /* Stop eth devices before setting up adapter */ + RTE_ETH_FOREACH_DEV(portid) { + + /* Use only the ports enabled */ + if ((mode_conf->eth_portmask & (1 << portid)) == 0) + continue; + + rte_eth_dev_stop(portid); + } + + /* Start eth devices after setting up adapter */ + RTE_ETH_FOREACH_DEV(portid) { + + /* Use only the ports enabled */ + if ((mode_conf->eth_portmask & (1 << portid)) == 0) + continue; + + ret = rte_eth_dev_start(portid); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error starting eth dev %d", portid); + return -1; + } + } + + return 0; +} diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index 77e69d0..0eafed3 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -62,9 +62,33 @@ rte_eventmode_helper_print_options_description(void); * @return * Configuration generated by parsing the event mode args. */ -struct rte_eventmode_helper_conf * +struct rte_eventmode_helper_conf * __rte_experimental rte_eventmode_helper_parse_args(int argc, char **argv); +/* Helper functions for initialization, & launching workers */ + +/** + * Initialize event mode devices + * + * Application could call this function to get the event device, eth device + * and eth rx adapter initialized according to the conf populated using the + * command line args. + * + * Application is expected to initialize the eth device and then the eventmode + * helper subsystem will stop & start eth device according to it's requirement. + * So call to this function should be done after the eth device is successfully + * initialized. + * + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + * @return + * - 0 on success. + * - (<0) on failure. + */ +int32_t __rte_experimental +rte_eventmode_helper_initialize_devs( + struct rte_eventmode_helper_conf *mode_conf); + #ifdef __cplusplus } #endif -- 2.7.4
next prev parent reply index Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-03 17:32 [dpdk-dev] [PATCH 00/39] adding eventmode helper library Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 01/39] examples/l2fwd-event: create copy of l2fwd Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 02/39] examples/l2fwd-event: move macros to common header Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 03/39] examples/l2fwd-event: move structures " Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 04/39] examples/l2fwd-event: move global vars " Anoob Joseph 2019-06-07 10:02 ` Jerin Jacob Kollanukkaran 2019-06-07 10:45 ` Anoob Joseph 2019-06-07 12:47 ` Jerin Jacob Kollanukkaran 2019-06-03 17:32 ` [dpdk-dev] [PATCH 05/39] examples/l2fwd-event: move dataplane code to new file Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 06/39] examples/l2fwd-event: remove unused header includes Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 07/39] examples/l2fwd-event: move drain buffers to new function Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 08/39] examples/l2fwd-event: optimize check for master core Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 09/39] examples/l2fwd-event: move periodic tasks to new func Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 10/39] examples/l2fwd-event: do timer updates only on master Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 11/39] examples/l2fwd-event: move pkt send code to a new func Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 12/39] examples/l2fwd-event: use fprintf in usage print Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 13/39] examples/l2fwd-event: improvements to the " Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 14/39] eventdev: add files for eventmode helper Anoob Joseph 2019-06-10 10:10 ` Jerin Jacob Kollanukkaran 2019-06-03 17:32 ` [dpdk-dev] [PATCH 15/39] eventdev: add routines for logging " Anoob Joseph 2019-06-10 10:12 ` Jerin Jacob Kollanukkaran 2019-06-17 9:09 ` Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 16/39] eventdev: add eventmode CL options framework Anoob Joseph 2019-06-10 10:19 ` Jerin Jacob Kollanukkaran 2019-06-17 10:14 ` Anoob Joseph 2019-06-11 8:58 ` [dpdk-dev] [EXT] " Sunil Kumar Kori 2019-06-03 17:32 ` [dpdk-dev] [PATCH 17/39] eventdev: allow application to set ethernet portmask Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 18/39] eventdev: add framework for eventmode conf Anoob Joseph 2019-06-10 10:06 ` Jerin Jacob Kollanukkaran 2019-06-20 7:26 ` Anoob Joseph 2019-06-03 17:32 ` Anoob Joseph [this message] 2019-06-10 10:23 ` [dpdk-dev] [PATCH 19/39] eventdev: add common initialize routine for eventmode devs Jerin Jacob Kollanukkaran 2019-06-17 10:22 ` Anoob Joseph 2019-06-11 8:58 ` [dpdk-dev] [EXT] " Sunil Kumar Kori 2019-06-03 17:32 ` [dpdk-dev] [PATCH 20/39] eventdev: add eventdevice init for eventmode Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 21/39] eventdev: add eventdev port-lcore link Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 22/39] eventdev: add option to specify schedule mode for app stage Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 23/39] eventdev: add placeholder for ethdev init Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 24/39] eventdev: add Rx adapter init in eventmode Anoob Joseph 2019-06-10 14:56 ` Carrillo, Erik G 2019-06-11 3:45 ` [dpdk-dev] [EXT] " Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 25/39] eventdev: add routine to validate conf Anoob Joseph 2019-06-10 10:25 ` Jerin Jacob Kollanukkaran 2019-06-17 10:23 ` Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 26/39] eventdev: add default conf for event devs field in conf Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 27/39] eventdev: add default conf for Rx adapter conf Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 28/39] eventdev: add default conf for event port-lcore link Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 29/39] eventdev: add routines to display the eventmode conf Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 30/39] eventdev: add routine to access eventmode link info Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 31/39] eventdev: add routine to access event queue for eth Tx Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 32/39] eventdev: add routine to launch eventmode workers Anoob Joseph 2019-06-10 14:31 ` Carrillo, Erik G 2019-06-17 10:34 ` [dpdk-dev] [EXT] " Anoob Joseph 2019-06-10 14:46 ` [dpdk-dev] " Carrillo, Erik G 2019-06-27 5:50 ` Anoob Joseph 2019-06-11 8:58 ` [dpdk-dev] [EXT] " Sunil Kumar Kori 2019-06-03 17:32 ` [dpdk-dev] [PATCH 33/39] eventdev: add Tx adapter support Anoob Joseph 2019-06-11 8:58 ` [dpdk-dev] [EXT] " Sunil Kumar Kori 2019-06-03 17:32 ` [dpdk-dev] [PATCH 34/39] eventdev: add support for internal ports Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 35/39] eventdev: display Tx adapter conf Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 36/39] examples/l2fwd-event: add eventmode for l2fwd Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 37/39] examples/l2fwd-event: add eventmode worker Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 38/39] " Anoob Joseph 2019-06-03 17:32 ` [dpdk-dev] [PATCH 39/39] " Anoob Joseph 2019-06-07 9:48 ` [dpdk-dev] [PATCH 00/39] adding eventmode helper library Jerin Jacob Kollanukkaran 2019-06-11 10:44 ` Mattias Rönnblom 2019-06-14 9:18 ` [dpdk-dev] [EXT] " Anoob Joseph 2019-06-17 13:23 ` Mattias Rönnblom 2019-06-20 3:44 ` Anoob Joseph [not found] <1559580584-5728-1-git-send-email-anoobj@marvell.com> 2019-06-03 16:49 ` [dpdk-dev] [PATCH 19/39] eventdev: add common initialize routine for eventmode devs Anoob Joseph
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=1559583160-13944-20-git-send-email-anoobj@marvell.com \ --to=anoobj@marvell.com \ --cc=abhinandan.gujjar@intel.com \ --cc=bruce.richardson@intel.com \ --cc=dev@dpdk.org \ --cc=erik.g.carrillo@intel.com \ --cc=harry.van.haaren@intel.com \ --cc=hemant.agrawal@nxp.com \ --cc=jerinj@marvell.com \ --cc=lbartosik@marvell.com \ --cc=liang.j.ma@intel.com \ --cc=mattias.ronnblom@ericsson.com \ --cc=nikhil.rao@intel.com \ --cc=nipun.gupta@nxp.com \ --cc=pablo.de.lara.guarch@intel.com \ --cc=pathreya@marvell.com \ --cc=pbhagavatula@marvell.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
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git