From 4fce65a6be1779c1bb0d0f0e6806cbadeca77108 Mon Sep 17 00:00:00 2001 From: Rich Lane Date: Fri, 25 Sep 2015 13:37:16 -0700 Subject: [PATCH] eal: default to using all cores This is a useful default for simple applications where the assignment of lcores to CPUs doesn't matter. It's also useful for more complex applications that automatically assign tasks to cores based on the NUMA topology. Signed-off-by: Rich Lane --- app/test/test_eal_flags.c | 9 +++++++-- doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +- doc/guides/linux_gsg/build_sample_apps.rst | 2 +- lib/librte_eal/common/eal_common_lcore.c | 3 +++ lib/librte_eal/common/eal_common_options.c | 11 +---------- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c index e6f7035310..e0aee2df28 100644 --- a/app/test/test_eal_flags.c +++ b/app/test/test_eal_flags.c @@ -571,11 +571,16 @@ test_missing_c_flag(void) "-n", "3", "--lcores", "0-1,2@(5-7),(3-5)@(0,2),(0,6),7"}; + if (launch_proc(argv2) != 0) { + printf("Error - " + "process did not run ok when missing -c flag\n"); + return -1; + } + if (launch_proc(argv1) == 0 - || launch_proc(argv2) == 0 || launch_proc(argv3) == 0) { printf("Error - " - "process ran without error when missing -c flag\n"); + "process ran without error with invalid -c flag\n"); return -1; } if (launch_proc(argv4) != 0) { diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst index acd031167f..a89055f582 100644 --- a/doc/guides/freebsd_gsg/build_sample_apps.rst +++ b/doc/guides/freebsd_gsg/build_sample_apps.rst @@ -114,7 +114,7 @@ The following is the list of options that can be given to the EAL: .. code-block:: console - ./rte-app -c COREMASK -n NUM [-b ] [-r NUM] [-v] [--proc-type ] + ./rte-app -n NUM [-c COREMASK] [-b ] [-r NUM] [-v] [--proc-type ] .. note:: diff --git a/doc/guides/linux_gsg/build_sample_apps.rst b/doc/guides/linux_gsg/build_sample_apps.rst index e0de2f56b1..07d84df406 100644 --- a/doc/guides/linux_gsg/build_sample_apps.rst +++ b/doc/guides/linux_gsg/build_sample_apps.rst @@ -109,7 +109,7 @@ The following is the list of options that can be given to the EAL: .. code-block:: console - ./rte-app -c COREMASK -n NUM [-b ] [--socket-mem=MB,...] [-m MB] [-r NUM] [-v] [--file-prefix] [--proc-type ] [-- xen-dom0] + ./rte-app -n NUM [-c COREMASK] [-b ] [--socket-mem=MB,...] [-m MB] [-r NUM] [-v] [--file-prefix] [--proc-type ] [-- xen-dom0] The EAL options are as follows: diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c index 845140b121..a4263ba5b8 100644 --- a/lib/librte_eal/common/eal_common_lcore.c +++ b/lib/librte_eal/common/eal_common_lcore.c @@ -63,6 +63,8 @@ rte_eal_cpu_init(void) * ones and enable them by default. */ for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) { + lcore_config[lcore_id].core_index = count; + /* init cpuset for per lcore config */ CPU_ZERO(&lcore_config[lcore_id].cpuset); @@ -70,6 +72,7 @@ rte_eal_cpu_init(void) lcore_config[lcore_id].detected = eal_cpu_detected(lcore_id); if (lcore_config[lcore_id].detected == 0) { config->lcore_role[lcore_id] = ROLE_OFF; + lcore_config[lcore_id].core_index = -1; continue; } diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index a4cdbaa788..c614477bc1 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -93,7 +93,6 @@ eal_long_options[] = { {0, 0, NULL, 0 } }; -static int lcores_parsed; static int master_lcore_parsed; static int mem_parsed; @@ -212,7 +211,6 @@ eal_parse_coremask(const char *coremask) return -1; /* Update the count of enabled logical cores of the EAL configuration */ cfg->lcore_count = count; - lcores_parsed = 1; return 0; } @@ -279,7 +277,6 @@ eal_parse_corelist(const char *corelist) /* Update the count of enabled logical cores of the EAL configuration */ cfg->lcore_count = count; - lcores_parsed = 1; return 0; } @@ -569,7 +566,6 @@ eal_parse_lcores(const char *lcores) goto err; cfg->lcore_count = count; - lcores_parsed = 1; ret = 0; err: @@ -820,11 +816,6 @@ eal_check_common_options(struct internal_config *internal_cfg) { struct rte_config *cfg = rte_eal_get_configuration(); - if (!lcores_parsed) { - RTE_LOG(ERR, EAL, "CPU cores must be enabled with options " - "-c, -l or --lcores\n"); - return -1; - } if (cfg->lcore_role[cfg->master_lcore] != ROLE_RTE) { RTE_LOG(ERR, EAL, "Master lcore is not enabled for DPDK\n"); return -1; @@ -863,7 +854,7 @@ eal_check_common_options(struct internal_config *internal_cfg) void eal_common_usage(void) { - printf("-c COREMASK|-l CORELIST [options]\n\n" + printf("[options]\n\n" "EAL common options:\n" " -c COREMASK Hexadecimal bitmask of cores to run on\n" " -l CORELIST List of cores to run on\n" -- 2.20.1