[ovs-dev] [RFC 2/3] dpdk: Drop support of deprecated options for EAL arguments.
Ilya Maximets
i.maximets at samsung.com
Fri Feb 1 13:11:13 UTC 2019
Drop support of all the old configuration knobs. Values are always
ignored now. Warning appears in case some of the old options detected
in database.
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
---
NEWS | 2 +-
lib/dpdk.c | 155 +++--------------------------------------------------
2 files changed, 9 insertions(+), 148 deletions(-)
diff --git a/NEWS b/NEWS
index 1c09e9d57..07528da95 100644
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,7 @@ Post-v2.11.0
- DPDK:
* New option 'other_config:dpdk-options' to pass all the
DPDK EAL argumants in a single string.
- * Following config options deprecated:
+ * Following config options no longer supported:
'dpdk-alloc-mem', 'dpdk-socket-mem', 'dpdk-socket-limit',
'dpdk-lcore-mask', 'dpdk-hugepage-dir' and 'dpdk-extra'.
diff --git a/lib/dpdk.c b/lib/dpdk.c
index 0c37f231d..fe271ce84 100644
--- a/lib/dpdk.c
+++ b/lib/dpdk.c
@@ -91,8 +91,8 @@ args_contains(const struct svec *args, const char *value)
return false;
}
-static bool
-report_deprecated_configs(const struct smap *ovs_other_config, bool ignore)
+static void
+report_unsupported_configs(const struct smap *ovs_other_config)
{
struct option {
const char *opt;
@@ -112,152 +112,16 @@ report_deprecated_configs(const struct smap *ovs_other_config, bool ignore)
const char *value = smap_get(ovs_other_config, options[i].opt);
if (value) {
- VLOG_WARN("Detected deprecated '%s' config. Use '%s %s'"
- " in 'dpdk-options' instead.%s",
- options[i].opt, options[i].replacement, value,
- ignore ? " Value ignored." : "");
+ VLOG_WARN("Detected unsupported '%s' config. Use '%s %s'"
+ " in 'dpdk-options' instead. Value ignored.",
+ options[i].opt, options[i].replacement, value);
found = true;
}
}
if (found) {
- VLOG_WARN("Deprecated options will be "
+ VLOG_WARN("Unsupported options will be "
"silently ignored in the future.");
}
- return found;
-}
-
-static void
-construct_dpdk_options(const struct smap *ovs_other_config, struct svec *args)
-{
- struct dpdk_options_map {
- const char *ovs_configuration;
- const char *dpdk_option;
- bool default_enabled;
- const char *default_value;
- } opts[] = {
- {"dpdk-lcore-mask", "-c", false, NULL},
- {"dpdk-hugepage-dir", "--huge-dir", false, NULL},
- {"dpdk-socket-limit", "--socket-limit", false, NULL},
- };
-
- int i;
-
- /*First, construct from the flat-options (non-mutex)*/
- for (i = 0; i < ARRAY_SIZE(opts); ++i) {
- const char *value = smap_get(ovs_other_config,
- opts[i].ovs_configuration);
- if (!value && opts[i].default_enabled) {
- value = opts[i].default_value;
- }
-
- if (value) {
- if (!args_contains(args, opts[i].dpdk_option)) {
- svec_add(args, opts[i].dpdk_option);
- svec_add(args, value);
- } else {
- VLOG_WARN("Ignoring database defined option '%s' due to "
- "dpdk-extra config", opts[i].dpdk_option);
- }
- }
- }
-}
-
-static char *
-construct_dpdk_socket_mem(void)
-{
- const char *def_value = "1024";
- int numa, numa_nodes = ovs_numa_get_n_numas();
- struct ds dpdk_socket_mem = DS_EMPTY_INITIALIZER;
-
- if (numa_nodes == 0 || numa_nodes == OVS_NUMA_UNSPEC) {
- numa_nodes = 1;
- }
-
- ds_put_cstr(&dpdk_socket_mem, def_value);
- for (numa = 1; numa < numa_nodes; ++numa) {
- ds_put_format(&dpdk_socket_mem, ",%s", def_value);
- }
-
- return ds_cstr(&dpdk_socket_mem);
-}
-
-#define MAX_DPDK_EXCL_OPTS 10
-
-static void
-construct_dpdk_mutex_options(const struct smap *ovs_other_config,
- struct svec *args)
-{
- char *default_dpdk_socket_mem = construct_dpdk_socket_mem();
-
- struct dpdk_exclusive_options_map {
- const char *category;
- const char *ovs_dpdk_options[MAX_DPDK_EXCL_OPTS];
- const char *eal_dpdk_options[MAX_DPDK_EXCL_OPTS];
- const char *default_value;
- int default_option;
- } excl_opts[] = {
- {"memory type",
- {"dpdk-alloc-mem", "dpdk-socket-mem", NULL,},
- {"-m", "--socket-mem", NULL,},
- default_dpdk_socket_mem, 1
- },
- };
-
- int i;
- for (i = 0; i < ARRAY_SIZE(excl_opts); ++i) {
- int found_opts = 0, scan, found_pos = -1;
- const char *found_value;
- struct dpdk_exclusive_options_map *popt = &excl_opts[i];
-
- for (scan = 0; scan < MAX_DPDK_EXCL_OPTS
- && popt->ovs_dpdk_options[scan]; ++scan) {
- const char *value = smap_get(ovs_other_config,
- popt->ovs_dpdk_options[scan]);
- if (value && strlen(value)) {
- found_opts++;
- found_pos = scan;
- found_value = value;
- }
- }
-
- if (!found_opts) {
- if (popt->default_option) {
- found_pos = popt->default_option;
- found_value = popt->default_value;
- } else {
- continue;
- }
- }
-
- if (found_opts > 1) {
- VLOG_ERR("Multiple defined options for %s. Please check your"
- " database settings and reconfigure if necessary.",
- popt->category);
- }
-
- if (!args_contains(args, popt->eal_dpdk_options[found_pos])) {
- svec_add(args, popt->eal_dpdk_options[found_pos]);
- svec_add(args, found_value);
- } else {
- VLOG_WARN("Ignoring database defined option '%s' due to "
- "dpdk-extra config", popt->eal_dpdk_options[found_pos]);
- }
- }
-
- free(default_dpdk_socket_mem);
-}
-
-static void
-construct_dpdk_args(const struct smap *ovs_other_config, struct svec *args)
-{
- const char *extra_configuration = smap_get(ovs_other_config, "dpdk-extra");
-
- if (extra_configuration) {
- svec_parse_words(args, extra_configuration);
- }
-
- construct_dpdk_options(ovs_other_config, args);
- construct_dpdk_mutex_options(ovs_other_config, args);
}
static ssize_t
@@ -305,7 +169,6 @@ dpdk_init__(const struct smap *ovs_other_config)
char **argv = NULL;
int result;
bool auto_determine = true;
- bool deprecated_found;
int err = 0;
cpu_set_t cpuset;
const char *dpdk_options;
@@ -353,15 +216,13 @@ dpdk_init__(const struct smap *ovs_other_config)
VLOG_INFO("Per port memory for DPDK devices %s.",
per_port_memory ? "enabled" : "disabled");
+ report_unsupported_configs(ovs_other_config);
+
svec_add(&args, ovs_get_program_name());
dpdk_options = smap_get(ovs_other_config, "dpdk-options");
- deprecated_found = report_deprecated_configs(ovs_other_config,
- dpdk_options ? true : false);
if (dpdk_options) {
svec_parse_words(&args, dpdk_options);
- } else if (deprecated_found) {
- construct_dpdk_args(ovs_other_config, &args);
}
if (!args_contains(&args, "--legacy-mem")
--
2.17.1
More information about the dev
mailing list