From d8ff0e1dc7a1d7a6d24f16a5318b7fded908d2c5 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Tue, 16 Feb 2016 12:29:57 +0100 Subject: [PATCH] Show DPDK EAL cmdline args in 'show version verbose' Change-Id: I88a8038a36e7e5060f354cd66a2532ef8c996b67 Signed-off-by: Damjan Marion --- vnet/vnet/devices/dpdk/dpdk.h | 1 + vnet/vnet/devices/dpdk/init.c | 5 +++++ vpp/app/version.c | 15 ++++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h index 2dab4effb7a..2a9d825e04d 100644 --- a/vnet/vnet/devices/dpdk/dpdk.h +++ b/vnet/vnet/devices/dpdk/dpdk.h @@ -322,6 +322,7 @@ typedef struct { /* Config stuff */ u8 ** eal_init_args; + u8 * eal_init_args_str; u8 * eth_if_blacklist; u8 * eth_if_whitelist; u8 * uio_driver_name; diff --git a/vnet/vnet/devices/dpdk/init.c b/vnet/vnet/devices/dpdk/init.c index 28a661f58e2..db0b8384dd9 100644 --- a/vnet/vnet/devices/dpdk/init.c +++ b/vnet/vnet/devices/dpdk/init.c @@ -1436,6 +1436,11 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input) vm = dm->vlib_main; + /* make copy of args as rte_eal_init tends to mess up with arg array */ + for (i = 1; i < vec_len(dm->eal_init_args); i++) + dm->eal_init_args_str = format(dm->eal_init_args_str, "%s ", + dm->eal_init_args[i]); + ret = rte_eal_init(vec_len(dm->eal_init_args), (char **) dm->eal_init_args); /* lazy umount hugepages */ diff --git a/vpp/app/version.c b/vpp/app/version.c index afd1e4a3af5..1c1f7a61194 100644 --- a/vpp/app/version.c +++ b/vpp/app/version.c @@ -17,6 +17,8 @@ #if DPDK > 0 #include +#include +#include #endif /* DPDK */ static char * vpe_version_string = @@ -47,13 +49,16 @@ show_vpe_version_command_fn (vlib_main_t * vm, vlib_cli_command_t * cmd) { vlib_cli_output (vm, "%s", vpe_version_string); - if (unformat (input, "verbose")){ - vlib_cli_output (vm, "%s", vpe_dir_string); - vlib_cli_output (vm, "%s", vpe_compiler); + if (unformat (input, "verbose")) + { + vlib_cli_output (vm, "%s", vpe_dir_string); + vlib_cli_output (vm, "%s", vpe_compiler); #if DPDK > 0 - vlib_cli_output (vm, "DPDK version is %s", rte_version()); + vlib_cli_output (vm, "DPDK version is %s", rte_version()); + vlib_cli_output (vm, "DPDK EAL init arguments: %v", + dpdk_main.eal_init_args_str); #endif - } + } return 0; } -- 2.16.6