eal: do not panic on a number of conditions
authorAaron Conole <aconole@redhat.com>
Wed, 22 Mar 2017 20:19:33 +0000 (16:19 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Mar 2017 13:54:49 +0000 (15:54 +0200)
commit7d5c430f698d9e3c8b966af21fb1503d4890aa0a
tree8b5b33e0877c206611192145f0434d053296fbad
parent8f113d9818500240f05237e4294c7cae8dcef52f
eal: do not panic on a number of conditions

When log initialization fails, it's generally because the fopencookie
failed.  While this is rare in practice, it could happen, and it is
likely because of memory pressure.  So, flag the error, and allow the
user to retry.

Memory init can only fail when access to hugepages (either as primary or
secondary process) fails (and that is usually permissions).  Since the
manner of failure is not reversible, we cannot allow retry.

There are some theoretical racy conditions in the system that _could_
cause early tailq init to fail;  however, no need to panic the
application.  While it can't continue using DPDK, it could make better
alerts to the user.

rte_eal_alarm_init() call uses the linux timerfd framework to create a
poll()-able timer using standard posix file operations.  This could fail
for a few reasons given in the man-pages, but many could be
corrected by the user application.  No need to panic.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_eal/bsdapp/eal/eal.c
lib/librte_eal/common/eal_common_tailqs.c
lib/librte_eal/linuxapp/eal/eal.c