Message ID | 20200124040542.2360-1-pbhagavatula@marvell.com (mailing list archive) |
---|---|
Headers | show |
Series | example/l3fwd: introduce event device support | expand |
On Fri, Jan 24, 2020 at 9:35 AM <pbhagavatula@marvell.com> wrote: > > From: Pavan Nikhilesh <pbhagavatula@marvell.com> > > This patchset adds support for event mode in l3fwd. > The poll mode is still the default mode of operation. > > The following new command line parameters are added: > --mode: Dictates the mode of operation either poll or event. If unset then > by default poll mode is used. > --eventq_sched: Dictates event synchronization mode i.e. either ordered, > atomic or parallel. > --event-eth-rxqs: Number of ethernet RX queues per device. > > Based on event device capability the configuration is done as follows: > - A single event device is enabled. > - The number of event ports is equal to the number of worker > cores enabled in the core mask. Additional event ports might > be configured based on Rx/Tx adapter capability. > - The number of event queues is equal to the number of ethernet > ports. If Tx adapter doesn't have internal port capability then > an additional single link event queue is used to enqueue events > to Tx adapter. > - Each event port is linked to all existing event queues. > - Dedicated Rx/Tx adapters for each Ethernet port. This series looks good to me. I have verified that there is no poll mode per core performance impact with this change. I will merge the next version on Tuesday for rc2 if there are no more comments from the mailing list. With below changes, Series-Acked-by: Jerin Jacob <jerinj@marvell.com> # Please rebase the release note to next-eventdev # Fix the following typos ### examples/l3fwd: add event device configuration WARNING:TYPO_SPELLING: 'configurtion' may be misspelled - perhaps 'configuration'? #119: FILE: examples/l3fwd/l3fwd_event_generic.c:34: + /* Event device configurtion */ WARNING:TYPO_SPELLING: 'configurtion' may be misspelled - perhaps 'configuration'? #207: FILE: examples/l3fwd/l3fwd_event_internal_port.c:34: + /* Event device configurtion */ total: 0 errors, 2 warnings, 230 lines checked ### examples/l3fwd: add event eth Rx/Tx adapter setup WARNING:TYPO_SPELLING: 'memery' may be misspelled - perhaps 'memory'? #67: FILE: examples/l3fwd/l3fwd_event_generic.c:208: + rte_panic("Failed to allocate memery for Rx adapter\n"); WARNING:TYPO_SPELLING: 'memery' may be misspelled - perhaps 'memory'? #111: FILE: examples/l3fwd/l3fwd_event_generic.c:252: + rte_panic("Failed to allocate memery for Rx adapter\n"); WARNING:TYPO_SPELLING: 'memery' may be misspelled - perhaps 'memory'? #198: FILE: examples/l3fwd/l3fwd_event_internal_port.c:207: + rte_panic("Failed to allocate memery for Rx adapter\n"); WARNING:TYPO_SPELLING: 'memery' may be misspelled - perhaps 'memory'? #236: FILE: examples/l3fwd/l3fwd_event_internal_port.c:245: + rte_panic("Failed to allocate memery for Rx adapter\n"); total: 0 errors, 4 warnings, 239 lines checked > > v5 Changes: > ---------- > - Update release notes and MAINTAINERS file. > - Fix typo in doc. > > v4 Changes: > ---------- > - Update documentation about --event-eth-rxqs. (Jerin) > - Add validation for command line options that are specific to event/poll mode. > - Fix event device service initialization. > > v3 Changes: > ---------- > - Unify argument parsing. > - Segregate poll mode and event mode initialization. > - Simplify event resource creation and accesses. > - Integrate http://patches.dpdk.org/project/dpdk/list/?series=8002 series. > - Reduce code duplication in lpm. > > v2 Changes: > ---------- > - Shorten the structure name `s/event_rsrc/evt_rsrc` `s/l2fwd_rsrc/rsrc`. > - Use rte_panic instead of rte_exit. > - Rebase on top of Tx adapter change http://patches.dpdk.org/patch/60971. > - Add parallel mode support. > - Fix missing eventdev args parsing. > > Pavan Nikhilesh (7): > examples/l3fwd: add event device configuration > examples/l3fwd: add event eth Rx/Tx adapter setup > examples/l3fwd: add service core setup based on caps > examples/l3fwd: add event lpm main loop > examples/l3fwd: add event em main loop > examples/l3fwd: add graceful teardown for eventdevice > doc: update l3fwd user guide to support eventdev > > Sunil Kumar Kori (4): > examples/l3fwd: add framework for event device > examples/l3fwd: split pipelines based on capability > examples/l3fwd: add ethdev setup based on eventdev > examples/l3fwd: add event port and queue setup > > MAINTAINERS | 1 + > doc/guides/rel_notes/release_20_02.rst | 5 + > doc/guides/sample_app_ug/l3_forward.rst | 79 ++++- > examples/l3fwd/Makefile | 3 +- > examples/l3fwd/l3fwd.h | 30 ++ > examples/l3fwd/l3fwd_em.c | 177 +++++++++++ > examples/l3fwd/l3fwd_em.h | 159 +++++++--- > examples/l3fwd/l3fwd_em_hlm.h | 131 ++++++++ > examples/l3fwd/l3fwd_em_sequential.h | 26 ++ > examples/l3fwd/l3fwd_event.c | 263 ++++++++++++++++ > examples/l3fwd/l3fwd_event.h | 86 ++++++ > examples/l3fwd/l3fwd_event_generic.c | 303 ++++++++++++++++++ > examples/l3fwd/l3fwd_event_internal_port.c | 279 +++++++++++++++++ > examples/l3fwd/l3fwd_lpm.c | 203 ++++++++++++ > examples/l3fwd/main.c | 341 +++++++++++++++++---- > examples/l3fwd/meson.build | 5 +- > 16 files changed, 1976 insertions(+), 115 deletions(-) > create mode 100644 examples/l3fwd/l3fwd_event.c > create mode 100644 examples/l3fwd/l3fwd_event.h > create mode 100644 examples/l3fwd/l3fwd_event_generic.c > create mode 100644 examples/l3fwd/l3fwd_event_internal_port.c > > -- > 2.17.1 >
From: Pavan Nikhilesh <pbhagavatula@marvell.com> This patchset adds support for event mode in l3fwd. The poll mode is still the default mode of operation. The following new command line parameters are added: --mode: Dictates the mode of operation either poll or event. If unset then by default poll mode is used. --eventq_sched: Dictates event synchronization mode i.e. either ordered, atomic or parallel. --event-eth-rxqs: Number of ethernet RX queues per device. Based on event device capability the configuration is done as follows: - A single event device is enabled. - The number of event ports is equal to the number of worker cores enabled in the core mask. Additional event ports might be configured based on Rx/Tx adapter capability. - The number of event queues is equal to the number of ethernet ports. If Tx adapter doesn't have internal port capability then an additional single link event queue is used to enqueue events to Tx adapter. - Each event port is linked to all existing event queues. - Dedicated Rx/Tx adapters for each Ethernet port. v5 Changes: ---------- - Update release notes and MAINTAINERS file. - Fix typo in doc. v4 Changes: ---------- - Update documentation about --event-eth-rxqs. (Jerin) - Add validation for command line options that are specific to event/poll mode. - Fix event device service initialization. v3 Changes: ---------- - Unify argument parsing. - Segregate poll mode and event mode initialization. - Simplify event resource creation and accesses. - Integrate http://patches.dpdk.org/project/dpdk/list/?series=8002 series. - Reduce code duplication in lpm. v2 Changes: ---------- - Shorten the structure name `s/event_rsrc/evt_rsrc` `s/l2fwd_rsrc/rsrc`. - Use rte_panic instead of rte_exit. - Rebase on top of Tx adapter change http://patches.dpdk.org/patch/60971. - Add parallel mode support. - Fix missing eventdev args parsing. Pavan Nikhilesh (7): examples/l3fwd: add event device configuration examples/l3fwd: add event eth Rx/Tx adapter setup examples/l3fwd: add service core setup based on caps examples/l3fwd: add event lpm main loop examples/l3fwd: add event em main loop examples/l3fwd: add graceful teardown for eventdevice doc: update l3fwd user guide to support eventdev Sunil Kumar Kori (4): examples/l3fwd: add framework for event device examples/l3fwd: split pipelines based on capability examples/l3fwd: add ethdev setup based on eventdev examples/l3fwd: add event port and queue setup MAINTAINERS | 1 + doc/guides/rel_notes/release_20_02.rst | 5 + doc/guides/sample_app_ug/l3_forward.rst | 79 ++++- examples/l3fwd/Makefile | 3 +- examples/l3fwd/l3fwd.h | 30 ++ examples/l3fwd/l3fwd_em.c | 177 +++++++++++ examples/l3fwd/l3fwd_em.h | 159 +++++++--- examples/l3fwd/l3fwd_em_hlm.h | 131 ++++++++ examples/l3fwd/l3fwd_em_sequential.h | 26 ++ examples/l3fwd/l3fwd_event.c | 263 ++++++++++++++++ examples/l3fwd/l3fwd_event.h | 86 ++++++ examples/l3fwd/l3fwd_event_generic.c | 303 ++++++++++++++++++ examples/l3fwd/l3fwd_event_internal_port.c | 279 +++++++++++++++++ examples/l3fwd/l3fwd_lpm.c | 203 ++++++++++++ examples/l3fwd/main.c | 341 +++++++++++++++++---- examples/l3fwd/meson.build | 5 +- 16 files changed, 1976 insertions(+), 115 deletions(-) create mode 100644 examples/l3fwd/l3fwd_event.c create mode 100644 examples/l3fwd/l3fwd_event.h create mode 100644 examples/l3fwd/l3fwd_event_generic.c create mode 100644 examples/l3fwd/l3fwd_event_internal_port.c -- 2.17.1