[v2,00/11] example/l3fwd: introduce event device support
mbox series

Message ID 20191204144345.5736-1-pbhagavatula@marvell.com
Headers show
Series
  • example/l3fwd: introduce event device support
Related show

Message

Pavan Nikhilesh Bhagavatula Dec. 4, 2019, 2:43 p.m. UTC
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.

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.

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

 doc/guides/sample_app_ug/l3_forward.rst    |  76 +++++-
 examples/l3fwd/Makefile                    |   3 +-
 examples/l3fwd/l3fwd.h                     |  32 +++
 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               | 294 ++++++++++++++++++++
 examples/l3fwd/l3fwd_event.h               | 117 ++++++++
 examples/l3fwd/l3fwd_event_generic.c       | 300 +++++++++++++++++++++
 examples/l3fwd/l3fwd_event_internal_port.c | 279 +++++++++++++++++++
 examples/l3fwd/l3fwd_lpm.c                 | 231 ++++++++++++++++
 examples/l3fwd/main.c                      | 203 +++++++++++---
 examples/l3fwd/meson.build                 |   5 +-
 14 files changed, 1948 insertions(+), 85 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

Comments

Jerin Jacob Dec. 4, 2019, 3:16 p.m. UTC | #1
On Wed, Dec 4, 2019 at 8:13 PM <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.
>
> 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.
>
> 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.

Since there is no maintainer for l3fwd and tech board decided to have
a unified l3fwd application
for poll mode and event mode, I request to have the review for the
common code change(at least 8/11 and 9/11
patches). This series has been pushed from the last release to this
release to have enough review.
We would like to merge this patch for this release. Request a timely review.