From ce382fdddba9ca272c47f2fee39b9694666759e0 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 7 Jul 2021 13:52:54 +0100 Subject: [PATCH] eal: create runtime dir even when shared data is not used MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When multi-process is not wanted and DPDK is run with the "no-shconf" flag, the telemetry library still needs a runtime directory to place the unix socket for telemetry connections. Therefore, rather than not creating the directory when this flag is set, we can change the code to attempt the creation anyway, but not error out if it fails. If it succeeds, then telemetry will be available, but if it fails, the rest of DPDK will run without telemetry. This ensures that the "in-memory" flag will allow DPDK to run even if the whole filesystem is read-only, for example. Signed-off-by: Bruce Richardson Reviewed-by: Morten Brørup Reviewed-by: David Marchand --- lib/eal/freebsd/eal.c | 14 ++++++++------ lib/eal/linux/eal.c | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c index f4d1676754..6cee5ae369 100644 --- a/lib/eal/freebsd/eal.c +++ b/lib/eal/freebsd/eal.c @@ -575,12 +575,14 @@ eal_parse_args(int argc, char **argv) } } - /* create runtime data directory */ - if (internal_conf->no_shconf == 0 && - eal_create_runtime_dir() < 0) { - RTE_LOG(ERR, EAL, "Cannot create runtime directory\n"); - ret = -1; - goto out; + /* create runtime data directory. In no_shconf mode, skip any errors */ + if (eal_create_runtime_dir() < 0) { + if (internal_conf->no_shconf == 0) { + RTE_LOG(ERR, EAL, "Cannot create runtime directory\n"); + ret = -1; + goto out; + } else + RTE_LOG(WARNING, EAL, "No DPDK runtime directory created\n"); } if (eal_adjust_config(internal_conf) != 0) { diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index ba19fc6347..3577eaeaa4 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -838,12 +838,14 @@ eal_parse_args(int argc, char **argv) } } - /* create runtime data directory */ - if (internal_conf->no_shconf == 0 && - eal_create_runtime_dir() < 0) { - RTE_LOG(ERR, EAL, "Cannot create runtime directory\n"); - ret = -1; - goto out; + /* create runtime data directory. In no_shconf mode, skip any errors */ + if (eal_create_runtime_dir() < 0) { + if (internal_conf->no_shconf == 0) { + RTE_LOG(ERR, EAL, "Cannot create runtime directory\n"); + ret = -1; + goto out; + } else + RTE_LOG(WARNING, EAL, "No DPDK runtime directory created\n"); } if (eal_adjust_config(internal_conf) != 0) { -- 2.20.1