char * arg[RTE_MAX_NUMA_NODES];
char *end;
int arg_num, i, len;
- uint64_t total_mem = 0;
len = strnlen(strval, SOCKET_MEM_STRLEN);
if (len == SOCKET_MEM_STRLEN) {
(arg[i][0] == '\0') || (end == NULL) || (*end != '\0'))
return -1;
val <<= 20;
- total_mem += val;
socket_arg[i] = val;
}
}
}
- /* 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) {
rte_eal_init_alert("Cannot clear runtime directory");
return -1;
}
- if (!internal_conf->no_telemetry) {
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY && !internal_conf->no_telemetry) {
int tlog = rte_log_register_type_and_pick_level(
"lib.telemetry", RTE_LOG_WARNING);
if (tlog < 0)
rte_mp_channel_cleanup();
/* after this point, any DPDK pointers will become dangling */
rte_eal_memory_detach();
+ rte_eal_alarm_cleanup();
rte_trace_save();
eal_trace_fini();
eal_cleanup_config(internal_conf);