[dpdk-dev] [PATCH v3 00/25] linux/eal: Remove most causes of panic on init
Stephen Hemminger
stephen at networkplumber.org
Thu Feb 9 23:38:14 CET 2017
On Thu, 9 Feb 2017 09:29:28 -0500
Aaron Conole <aconole at redhat.com> wrote:
> 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).
>
> Changes ->v2:
> - Audited all "RTE_LOG (" calls that were introduced, and converted
> to "RTE_LOG("
> - Added some fprintf(stderr, "") lines to indicate errors before logging
> is initialized
> - Removed assignments to errno.
> - Changed patch 14/25 to reflect EFAULT, and document in 25/25
>
> Changes ->v3:
> - Checkpatch issues in patches 3 (spelling mistake), 9 (issue with leading
> spaces), and 19 (braces around single line statement if-condition)
>
> I kept the rte_errno reflection, since this is control-path code and the
> init function returns a sentinel value of -1.
>
> Aaron Conole (25):
> 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
> eal: do not panic when bus probe fails
> rte_eal_init: add info about rte_errno codes
>
> 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 | 3 +-
> .../common/include/generic/rte_cpuflags.h | 9 ++
> lib/librte_eal/common/include/rte_eal.h | 27 ++++-
> lib/librte_eal/linuxapp/eal/eal.c | 122 +++++++++++++++------
> lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 6 +-
> lib/librte_eal/linuxapp/eal/eal_interrupts.c | 5 +-
> 10 files changed, 161 insertions(+), 51 deletions(-)
>
I worry that some of these early failure messages may never be visible
because the logging system has not been initialized. Might be safer to
just use fprintf(stderr, ...) or define a new wrapper function.
More information about the dev
mailing list