mbox series

[ovs-dev,RFC,v2,0/2] dpdk: minor refactor of the initialization step

Message ID 20180418183023.2627-1-aconole@redhat.com
Headers show
Series dpdk: minor refactor of the initialization step | expand

Message

Aaron Conole April 18, 2018, 6:30 p.m. UTC
Sometimes, DPDK initialization can fail, but ovs-vswitchd will abort in
that case.  When that occurs, ovs-vswitchd will be restarted by the
monitor and immediately abort.  This is rather unfriendly to users, who
would prefer to possibly correct the issue or at least, not have lots of
processes continually spawning.

This series accepts that rte_eal_init() can and does fail for real.  It
reflects the initialization status in the database, as well as adding
the DPDK version (where appropriate).  In the case the user wants this
new behavior, they would set dpdk-init to 'try' rather than the current
setting of 'true'.

Submitted as RFC to spawn discussion around the type to reflect for
the initialized information.  Presented here as a boolean - however,
it might be more interesting to be a 'string' and have more elaborate
details (ex: 'failed - ovs_strerror(rte_errno)' or 'uninitialized' or
'initialized').

v2:
 - changed to allow dpdk-init to be set to 'try'

Aaron Conole (2):
  dpdk: allow init to fail
  dpdk: reflect status and version in the database

 Documentation/faq/configuration.rst  |  8 +++++---
 Documentation/intro/install/dpdk.rst | 27 ++++++++++++++++++++++---
 lib/dpdk-stub.c                      | 10 +++++++++
 lib/dpdk.c                           | 39 +++++++++++++++++++++++++++++-------
 lib/dpdk.h                           |  3 ++-
 vswitchd/bridge.c                    |  5 +++++
 vswitchd/vswitch.ovsschema           | 11 +++++++---
 vswitchd/vswitch.xml                 | 11 ++++++++++
 8 files changed, 97 insertions(+), 17 deletions(-)

Comments

Aaron Conole April 24, 2018, 7:40 p.m. UTC | #1
Aaron Conole <aconole@redhat.com> writes:

> Sometimes, DPDK initialization can fail, but ovs-vswitchd will abort in
> that case.  When that occurs, ovs-vswitchd will be restarted by the
> monitor and immediately abort.  This is rather unfriendly to users, who
> would prefer to possibly correct the issue or at least, not have lots of
> processes continually spawning.
>
> This series accepts that rte_eal_init() can and does fail for real.  It
> reflects the initialization status in the database, as well as adding
> the DPDK version (where appropriate).  In the case the user wants this
> new behavior, they would set dpdk-init to 'try' rather than the current
> setting of 'true'.
>
> Submitted as RFC to spawn discussion around the type to reflect for
> the initialized information.  Presented here as a boolean - however,
> it might be more interesting to be a 'string' and have more elaborate
> details (ex: 'failed - ovs_strerror(rte_errno)' or 'uninitialized' or
> 'initialized').

If there are no other comments, I plan on submitting this as PATCH this
week.

Thanks!

> v2:
>  - changed to allow dpdk-init to be set to 'try'
>
> Aaron Conole (2):
>   dpdk: allow init to fail
>   dpdk: reflect status and version in the database
>
>  Documentation/faq/configuration.rst  |  8 +++++---
>  Documentation/intro/install/dpdk.rst | 27 ++++++++++++++++++++++---
>  lib/dpdk-stub.c                      | 10 +++++++++
>  lib/dpdk.c                           | 39 +++++++++++++++++++++++++++++-------
>  lib/dpdk.h                           |  3 ++-
>  vswitchd/bridge.c                    |  5 +++++
>  vswitchd/vswitch.ovsschema           | 11 +++++++---
>  vswitchd/vswitch.xml                 | 11 ++++++++++
>  8 files changed, 97 insertions(+), 17 deletions(-)