DPDK patches and discussions
 help / color / mirror / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [RFC 00/23] Refactor eal_init to remove panic() calls
Date: Fri, 30 Dec 2016 10:25:57 -0500	[thread overview]
Message-ID: <1483111580-5397-1-git-send-email-aconole@redhat.com> (raw)

In many cases, it's enough to simply let the application know that the
call to initialize DPDK has failed.  A complete halt can then be
decided by the application based on error returned (and the app could
even attempt a possible re-attempt after some corrective action by the
user or application).

There is still some work left in this series.

One bit of work left is to take the calls which could reasonably be
corrected (and then init can be re-attempted), and make sure to clear
the already-initialized flag.

Another piece of work is to fix the lcore master/slave errors to
properly reflect thread state.

Finally, some real heavy testing should be done.  The series wasn't
tested much, and could use real soak time.  Especially around some of
the calls where it no longer returns an error (for instance, vdev init
and plugin init).

Aaron Conole (23):
  eal: CPU init will no longer panic
  eal: return error instead of panic for cpu init
  eal: No panic on hugepages info init
  eal: do not panic on failed hugepage query
  eal: failure to parse args returns error
  eal-common: introduce a way to query cpu support
  eal: Signal error when CPU isn't supported
  eal: do not panic on memzone initialization fails
  eal: set errno when exiting for already called
  eal: Do not panic on log failures
  eal: Do not panic on pci-probe
  eal: do not panic on vfio failure
  eal: do not panic on memory init
  eal: do not panic on tailq init
  eal: do not panic on alarm init
  eal: convert timer_init not to call panic
  eal: change the private pipe call to reflect errno
  eal: Do not panic on interrupt thread init
  eal: do not error if plugins fail to init
  eal_pci: Continue probing even on failures
  eal: do not panic on failed PCI probe
  eal_common_dev: continue initializing vdevs
  eal: do not panic (or abort) if vdev init fails

 lib/librte_eal/common/eal_common_cpuflags.c        |  13 ++-
 lib/librte_eal/common/eal_common_dev.c             |   5 +-
 lib/librte_eal/common/eal_common_lcore.c           |   7 +-
 lib/librte_eal/common/eal_common_pci.c             |  15 ++-
 lib/librte_eal/common/eal_common_tailqs.c          |   4 +-
 .../common/include/generic/rte_cpuflags.h          |   9 ++
 lib/librte_eal/linuxapp/eal/eal.c                  | 109 +++++++++++++++------
 lib/librte_eal/linuxapp/eal/eal_hugepage_info.c    |   6 +-
 lib/librte_eal/linuxapp/eal/eal_interrupts.c       |   5 +-
 9 files changed, 125 insertions(+), 48 deletions(-)

-- 
2.7.4

             reply	other threads:[~2016-12-30 15:26 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-30 15:25 Aaron Conole [this message]
2016-12-30 15:25 ` [dpdk-dev] [RFC 01/23] eal: CPU init will no longer panic Aaron Conole
2016-12-30 15:25 ` [dpdk-dev] [RFC 02/23] eal: return error instead of panic for cpu init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 03/23] eal: No panic on hugepages info init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 04/23] eal: do not panic on failed hugepage query Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 05/23] eal: failure to parse args returns error Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 06/23] eal-common: introduce a way to query cpu support Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 07/23] eal: Signal error when CPU isn't supported Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 08/23] eal: do not panic on memzone initialization fails Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 09/23] eal: set errno when exiting for already called Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 10/23] eal: Do not panic on log failures Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 11/23] eal: Do not panic on pci-probe Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 12/23] eal: do not panic on vfio failure Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 13/23] eal: do not panic on memory init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 14/23] eal: do not panic on tailq init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 15/23] eal: do not panic on alarm init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 16/23] eal: convert timer_init not to call panic Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 17/23] eal: change the private pipe call to reflect errno Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 18/23] eal: Do not panic on interrupt thread init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 19/23] eal: do not error if plugins fail to init Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 20/23] eal_pci: Continue probing even on failures Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 21/23] eal: do not panic on failed PCI probe Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 22/23] eal_common_dev: continue initializing vdevs Aaron Conole
2016-12-30 15:26 ` [dpdk-dev] [RFC 23/23] eal: do not panic (or abort) if vdev init fails Aaron Conole
2017-01-02 14:22 ` [dpdk-dev] [RFC 00/23] Refactor eal_init to remove panic() calls Thomas Monjalon
2017-01-03 16:06   ` Aaron Conole
2017-01-25 21:33   ` Aaron Conole

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=1483111580-5397-1-git-send-email-aconole@redhat.com \
    --to=aconole@redhat.com \
    --cc=dev@dpdk.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).