mbox series

[v5,00/10] example/l2fwd-event: introduce l2fwd-event example

Message ID 20191002205754.11746-1-pbhagavatula@marvell.com (mailing list archive)
Headers
Series example/l2fwd-event: introduce l2fwd-event example |

Message

Pavan Nikhilesh Bhagavatula Oct. 2, 2019, 8:57 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

This patchset adds a new application to demonstrate the usage of event
mode. The poll mode is also available to help with the transition.

The following new command line parameters are added:
 --mode: Dictates the mode of operation either poll or event.
 --eventq_sync: Dictates event synchronization mode either atomic or
		ordered.

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:
- Redo poll mode datapath by removing all the static globals.
- Fix event queue configuration when required queues are not available.
- Fix Rx/Tx adapter creation based on portmask.
- Update release notes.
- Unroll macro used to generate event mode functions.

v4 Changes:
- Fix missing eventdev args parsing.

v3 Changes:
- Remove unwanted change to example/l2fwd.
- Fix checkpatch issue
	http://mails.dpdk.org/archives/test-report/2019-September/098053.html

v2 Changes:
- Remove global variables.
- Split patches to make reviews friendlier.
- Split datapath based on eventdev capability.

Pavan Nikhilesh (5):
  examples/l2fwd-event: add default poll mode routines
  examples/l2fwd-event: add infra for eventdev
  examples/l2fwd-event: add service core setup
  examples/l2fwd-event: add eventdev main loop
  examples/l2fwd-event: add graceful teardown

Sunil Kumar Kori (5):
  examples/l2fwd-event: add infra to split eventdev framework
  examples/l2fwd-event: add event device setup
  examples/l2fwd-event: add eventdev queue and port setup
  examples/l2fwd-event: add event Rx/Tx adapter setup
  doc: add application usage guide for l2fwd-event

 MAINTAINERS                                   |   6 +
 doc/guides/rel_notes/release_19_11.rst        |   6 +
 doc/guides/sample_app_ug/index.rst            |   1 +
 doc/guides/sample_app_ug/intro.rst            |   5 +
 doc/guides/sample_app_ug/l2_forward_event.rst | 755 ++++++++++++++++++
 examples/Makefile                             |   1 +
 examples/l2fwd-event/Makefile                 |  62 ++
 examples/l2fwd-event/l2fwd_common.c           | 148 ++++
 examples/l2fwd-event/l2fwd_common.h           | 134 ++++
 examples/l2fwd-event/l2fwd_event.c            | 455 +++++++++++
 examples/l2fwd-event/l2fwd_event.h            |  73 ++
 examples/l2fwd-event/l2fwd_event_generic.c    | 331 ++++++++
 .../l2fwd-event/l2fwd_event_internal_port.c   | 306 +++++++
 examples/l2fwd-event/l2fwd_poll.c             | 197 +++++
 examples/l2fwd-event/l2fwd_poll.h             |  25 +
 examples/l2fwd-event/main.c                   | 456 +++++++++++
 examples/l2fwd-event/meson.build              |  17 +
 17 files changed, 2978 insertions(+)
 create mode 100644 doc/guides/sample_app_ug/l2_forward_event.rst
 create mode 100644 examples/l2fwd-event/Makefile
 create mode 100644 examples/l2fwd-event/l2fwd_common.c
 create mode 100644 examples/l2fwd-event/l2fwd_common.h
 create mode 100644 examples/l2fwd-event/l2fwd_event.c
 create mode 100644 examples/l2fwd-event/l2fwd_event.h
 create mode 100644 examples/l2fwd-event/l2fwd_event_generic.c
 create mode 100644 examples/l2fwd-event/l2fwd_event_internal_port.c
 create mode 100644 examples/l2fwd-event/l2fwd_poll.c
 create mode 100644 examples/l2fwd-event/l2fwd_poll.h
 create mode 100644 examples/l2fwd-event/main.c
 create mode 100644 examples/l2fwd-event/meson.build

--
2.17.1
  

Comments

Jerin Jacob Oct. 3, 2019, 10:33 a.m. UTC | #1
On Thu, Oct 3, 2019 at 2:28 AM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> This patchset adds a new application to demonstrate the usage of event
> mode. The poll mode is also available to help with the transition.
>
> The following new command line parameters are added:
>  --mode: Dictates the mode of operation either poll or event.
>  --eventq_sync: Dictates event synchronization mode either atomic or
>                 ordered.
>
> 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:
> - Redo poll mode datapath by removing all the static globals.
> - Fix event queue configuration when required queues are not available.
> - Fix Rx/Tx adapter creation based on portmask.
> - Update release notes.
> - Unroll macro used to generate event mode functions.




Adding all eventdev maintainers.

I have some minor comments on Documentation. Other than that, The
series looks good to me in general.
Anyone else planning to review this code. If yes, We will wait for
merging this patch after RC1.
If no, then we can merge in RC1 if no objection.
  
Hemant Agrawal Oct. 3, 2019, 12:40 p.m. UTC | #2
Hi Jerin,

> -----Original Message-----
> From: Jerin Jacob <jerinjacobk@gmail.com>
> Sent: Thursday, October 3, 2019 4:04 PM
> To: Pavan Nikhilesh <pbhagavatula@marvell.com>
> Cc: Jerin Jacob <jerinj@marvell.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; Akhil Goyal <akhil.goyal@nxp.com>; dpdk-
> dev <dev@dpdk.org>; Van Haaren, Harry <harry.van.haaren@intel.com>;
> mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; Gujjar, Abhinandan
> S <abhinandan.gujjar@intel.com>; Rao, Nikhil <nikhil.rao@intel.com>;
> Hemant Agrawal <hemant.agrawal@nxp.com>; erik.g.carrillo@intel.com
> Subject: Re: [dpdk-dev] [PATCH v5 00/10] example/l2fwd-event: introduce
> l2fwd-event example
> Importance: High
> 
> On Thu, Oct 3, 2019 at 2:28 AM <pbhagavatula@marvell.com> wrote:
> >
> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >
> > This patchset adds a new application to demonstrate the usage of event
> > mode. The poll mode is also available to help with the transition.
> >
> > The following new command line parameters are added:
> >  --mode: Dictates the mode of operation either poll or event.
> >  --eventq_sync: Dictates event synchronization mode either atomic or
> >                 ordered.
> >
> > 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:
> > - Redo poll mode datapath by removing all the static globals.
> > - Fix event queue configuration when required queues are not available.
> > - Fix Rx/Tx adapter creation based on portmask.
> > - Update release notes.
> > - Unroll macro used to generate event mode functions.
> 
> 
> 
> 
> Adding all eventdev maintainers.
> 
> I have some minor comments on Documentation. Other than that, The series
> looks good to me in general.
> Anyone else planning to review this code. If yes, We will wait for merging this
> patch after RC1.
> If no, then we can merge in RC1 if no objection.
[Hemant] 
On a high level this series looks good to us. However currently we are in the process of testing it.  
Will you please wait for our ack?  Currently we are trying to completed it before RC1

Regards,
Hemant
  
Jerin Jacob Oct. 3, 2019, 12:47 p.m. UTC | #3
On Thu, Oct 3, 2019 at 6:10 PM Hemant Agrawal <hemant.agrawal@nxp.com> wrote:
>
> Hi Jerin,
>
> > -----Original Message-----
> > From: Jerin Jacob <jerinjacobk@gmail.com>
> > Sent: Thursday, October 3, 2019 4:04 PM
> > To: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > Cc: Jerin Jacob <jerinj@marvell.com>; Richardson, Bruce
> > <bruce.richardson@intel.com>; Akhil Goyal <akhil.goyal@nxp.com>; dpdk-
> > dev <dev@dpdk.org>; Van Haaren, Harry <harry.van.haaren@intel.com>;
> > mattias.ronnblom@ericsson.com; liang.j.ma@intel.com; Gujjar, Abhinandan
> > S <abhinandan.gujjar@intel.com>; Rao, Nikhil <nikhil.rao@intel.com>;
> > Hemant Agrawal <hemant.agrawal@nxp.com>; erik.g.carrillo@intel.com
> > Subject: Re: [dpdk-dev] [PATCH v5 00/10] example/l2fwd-event: introduce
> > l2fwd-event example
> > Importance: High
> >
> > On Thu, Oct 3, 2019 at 2:28 AM <pbhagavatula@marvell.com> wrote:
> > >
> > > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > >
> > > This patchset adds a new application to demonstrate the usage of event
> > > mode. The poll mode is also available to help with the transition.
> > >
> > > The following new command line parameters are added:
> > >  --mode: Dictates the mode of operation either poll or event.
> > >  --eventq_sync: Dictates event synchronization mode either atomic or
> > >                 ordered.
> > >
> > > 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:
> > > - Redo poll mode datapath by removing all the static globals.
> > > - Fix event queue configuration when required queues are not available.
> > > - Fix Rx/Tx adapter creation based on portmask.
> > > - Update release notes.
> > > - Unroll macro used to generate event mode functions.
> >
> >
> >
> >
> > Adding all eventdev maintainers.
> >
> > I have some minor comments on Documentation. Other than that, The series
> > looks good to me in general.
> > Anyone else planning to review this code. If yes, We will wait for merging this
> > patch after RC1.
> > If no, then we can merge in RC1 if no objection.
> [Hemant]
> On a high level this series looks good to us. However currently we are in the process of testing it.
> Will you please wait for our ack?  Currently we are trying to completed it before RC1

OK. Will for NXP's Ack.

>
> Regards,
> Hemant
>
  
Nipun Gupta Oct. 9, 2019, 7:50 a.m. UTC | #4
With parallel mode support and series based over top of:
https://patchwork.dpdk.org/patch/60762/

Series
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of
> pbhagavatula@marvell.com
> Sent: Thursday, October 3, 2019 2:28 AM
> To: jerinj@marvell.com; bruce.richardson@intel.com; Akhil Goyal
> <akhil.goyal@nxp.com>
> Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@marvell.com>
> Subject: [dpdk-dev] [PATCH v5 00/10] example/l2fwd-event: introduce
> l2fwd-event example
> 
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> 
> This patchset adds a new application to demonstrate the usage of event
> mode. The poll mode is also available to help with the transition.
> 
> The following new command line parameters are added:
>  --mode: Dictates the mode of operation either poll or event.
>  --eventq_sync: Dictates event synchronization mode either atomic or
> 		ordered.
> 
> 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:
> - Redo poll mode datapath by removing all the static globals.
> - Fix event queue configuration when required queues are not available.
> - Fix Rx/Tx adapter creation based on portmask.
> - Update release notes.
> - Unroll macro used to generate event mode functions.
> 
> v4 Changes:
> - Fix missing eventdev args parsing.
> 
> v3 Changes:
> - Remove unwanted change to example/l2fwd.
> - Fix checkpatch issue
> 	https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> Fmails.dpdk.org%2Farchives%2Ftest-report%2F2019-
> September%2F098053.html&amp;data=02%7C01%7Cnipun.gupta%40nxp.co
> m%7C059055e10dcd4ef59a8808d7477b3894%7C686ea1d3bc2b4c6fa92cd99c5
> c301635%7C0%7C0%7C637056466870802064&amp;sdata=q6qdS3IELoe9ry3mf
> TVjtZgRLxcYIWW%2FnYaeacHpixM%3D&amp;reserved=0
> 
> v2 Changes:
> - Remove global variables.
> - Split patches to make reviews friendlier.
> - Split datapath based on eventdev capability.
> 
> Pavan Nikhilesh (5):
>   examples/l2fwd-event: add default poll mode routines
>   examples/l2fwd-event: add infra for eventdev
>   examples/l2fwd-event: add service core setup
>   examples/l2fwd-event: add eventdev main loop
>   examples/l2fwd-event: add graceful teardown
> 
> Sunil Kumar Kori (5):
>   examples/l2fwd-event: add infra to split eventdev framework
>   examples/l2fwd-event: add event device setup
>   examples/l2fwd-event: add eventdev queue and port setup
>   examples/l2fwd-event: add event Rx/Tx adapter setup
>   doc: add application usage guide for l2fwd-event
> 
>  MAINTAINERS                                   |   6 +
>  doc/guides/rel_notes/release_19_11.rst        |   6 +
>  doc/guides/sample_app_ug/index.rst            |   1 +
>  doc/guides/sample_app_ug/intro.rst            |   5 +
>  doc/guides/sample_app_ug/l2_forward_event.rst | 755
> ++++++++++++++++++
>  examples/Makefile                             |   1 +
>  examples/l2fwd-event/Makefile                 |  62 ++
>  examples/l2fwd-event/l2fwd_common.c           | 148 ++++
>  examples/l2fwd-event/l2fwd_common.h           | 134 ++++
>  examples/l2fwd-event/l2fwd_event.c            | 455 +++++++++++
>  examples/l2fwd-event/l2fwd_event.h            |  73 ++
>  examples/l2fwd-event/l2fwd_event_generic.c    | 331 ++++++++
>  .../l2fwd-event/l2fwd_event_internal_port.c   | 306 +++++++
>  examples/l2fwd-event/l2fwd_poll.c             | 197 +++++
>  examples/l2fwd-event/l2fwd_poll.h             |  25 +
>  examples/l2fwd-event/main.c                   | 456 +++++++++++
>  examples/l2fwd-event/meson.build              |  17 +
>  17 files changed, 2978 insertions(+)
>  create mode 100644 doc/guides/sample_app_ug/l2_forward_event.rst
>  create mode 100644 examples/l2fwd-event/Makefile
>  create mode 100644 examples/l2fwd-event/l2fwd_common.c
>  create mode 100644 examples/l2fwd-event/l2fwd_common.h
>  create mode 100644 examples/l2fwd-event/l2fwd_event.c
>  create mode 100644 examples/l2fwd-event/l2fwd_event.h
>  create mode 100644 examples/l2fwd-event/l2fwd_event_generic.c
>  create mode 100644 examples/l2fwd-event/l2fwd_event_internal_port.c
>  create mode 100644 examples/l2fwd-event/l2fwd_poll.c
>  create mode 100644 examples/l2fwd-event/l2fwd_poll.h
>  create mode 100644 examples/l2fwd-event/main.c
>  create mode 100644 examples/l2fwd-event/meson.build
> 
> --
> 2.17.1