summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 66fd330)
raw | patch | inline | side by side (parent: 66fd330)
author | Jiri Prokes <jirix.x.prokes@intel.com> | |
Tue, 24 Oct 2017 13:17:16 +0000 (06:17 -0700) | ||
committer | Jiri Prokes <jirix.x.prokes@intel.com> | |
Tue, 24 Oct 2017 13:17:16 +0000 (06:17 -0700) |
- There was read 16kb from pipe but only less then 1kb was traced.
Rest of trace data was lost.
Added support for two EAL parameters:
LogLevel - optional EAL paramenter which enable debug traces from rte libs
If parameter is not used default trace level = 7 (INFO) is used
LogLevel "8" - (DEBUG) can be set to collectd.conf into dpdkstat
EAL section
RteDriverLibPath - optional EAL parameter which enable loading of shared
pmd driver libs. Param value can be full path to single
pmd diriver lib or directory where pmd driver libs are
located. E.g.: "/usr/lib/dpdk-pmd/librte_pmd_i40e.so"
or "/usr/lib/dpdk-pmd"
Signed-off-by: Jiri Prokes <jirix.x.prokes@intel.com>
Rest of trace data was lost.
Added support for two EAL parameters:
LogLevel - optional EAL paramenter which enable debug traces from rte libs
If parameter is not used default trace level = 7 (INFO) is used
LogLevel "8" - (DEBUG) can be set to collectd.conf into dpdkstat
EAL section
RteDriverLibPath - optional EAL parameter which enable loading of shared
pmd driver libs. Param value can be full path to single
pmd diriver lib or directory where pmd driver libs are
located. E.g.: "/usr/lib/dpdk-pmd/librte_pmd_i40e.so"
or "/usr/lib/dpdk-pmd"
Signed-off-by: Jiri Prokes <jirix.x.prokes@intel.com>
src/utils_dpdk.c | patch | blob | history | |
src/utils_dpdk.h | patch | blob | history |
diff --git a/src/utils_dpdk.c b/src/utils_dpdk.c
index 77f596ebd7da7352efcb4e1d76b550505a80c61c..55ff7bc4e32446d023dc140a3ab7fd0ccd4b8c11 100644 (file)
--- a/src/utils_dpdk.c
+++ b/src/utils_dpdk.c
#include "utils_dpdk.h"
#define DPDK_DEFAULT_RTE_CONFIG "/var/run/.rte_config"
-#define DPDK_EAL_ARGC 5
-#define DPDK_MAX_BUFFER_SIZE (4096 * 4)
+#define DPDK_EAL_ARGC 10
+//Complete trace should fit into 1024 chars
+#define DPDK_MAX_BUFFER_SIZE 896
#define DPDK_CDM_DEFAULT_TIMEOUT 10000
enum DPDK_HELPER_STATUS {
"/var/run/.%s_config", prefix);
DEBUG("dpdk_common: EAL:File prefix %s", phc->eal_config.file_prefix);
}
+ } else if (strcasecmp("LogLevel", child->key) == 0) {
+ status = cf_util_get_string_buffer(child, phc->eal_config.log_level,
+ sizeof(phc->eal_config.log_level));
+ DEBUG("dpdk_common: EAL:LogLevel %s", phc->eal_config.log_level);
+ } else if (strcasecmp("RteDriverLibPath", child->key) == 0) {
+ status = cf_util_get_string_buffer(child, phc->eal_config.rte_driver_lib_path,
+ sizeof(phc->eal_config.rte_driver_lib_path));
+ DEBUG("dpdk_common: EAL:RteDriverLibPath %s", phc->eal_config.rte_driver_lib_path);
} else {
ERROR("dpdk_common: Invalid '%s' configuration option", child->key);
status = -EINVAL;
argp[argc++] = "--proc-type";
argp[argc++] = "secondary";
+ if (strcasecmp(phc->eal_config.log_level, "") != 0) {
+ argp[argc++] = "--log-level";
+ argp[argc++] = phc->eal_config.log_level;
+ }
+ if (strcasecmp(phc->eal_config.rte_driver_lib_path, "") != 0) {
+ argp[argc++] = "-d";
+ argp[argc++] = phc->eal_config.rte_driver_lib_path;
+ }
+
assert(argc <= (DPDK_EAL_ARGC * 2 + 1));
int ret = rte_eal_init(argc, argp);
.fd = phc->pipes[0], .events = POLLIN,
};
int data_avail = poll(&fds, 1, 0);
+ DEBUG("%s:dpdk_helper_check_pipe: poll data_avail=%d", phc->shm_name, data_avail);
if (data_avail < 0) {
if (errno != EINTR || errno != EAGAIN) {
char errbuf[ERR_BUF_SIZE];
}
}
while (data_avail) {
- int nbytes = read(phc->pipes[0], buf, sizeof(buf));
+ int nbytes = read(phc->pipes[0], buf, (sizeof(buf) - 1));
+ DEBUG("%s:dpdk_helper_check_pipe: read nbytes=%d", phc->shm_name, nbytes);
if (nbytes <= 0)
break;
- sstrncpy(out, buf, nbytes);
+ buf[nbytes] = '\n';
+ sstrncpy(out, buf, (nbytes + 1));
DEBUG("%s: helper process:\n%s", phc->shm_name, out);
}
}
diff --git a/src/utils_dpdk.h b/src/utils_dpdk.h
index 23941dfc0abdfc09c8d3b258c712335e4ca32015..e8d853575f538986fdaf395f424f06602a76a743 100644 (file)
--- a/src/utils_dpdk.h
+++ b/src/utils_dpdk.h
char memory_channels[DATA_MAX_NAME_LEN];
char socket_memory[DATA_MAX_NAME_LEN];
char file_prefix[DATA_MAX_NAME_LEN];
+ char log_level[DATA_MAX_NAME_LEN];
+ char rte_driver_lib_path[DATA_MAX_NAME_LEN];
};
typedef struct dpdk_eal_config_s dpdk_eal_config_t;