eal: default to using all cores
authorRich Lane <rich.lane@bigswitch.com>
Fri, 25 Sep 2015 20:37:16 +0000 (13:37 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 26 Oct 2015 19:36:26 +0000 (20:36 +0100)
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 <rich.lane@bigswitch.com>
app/test/test_eal_flags.c
doc/guides/freebsd_gsg/build_sample_apps.rst
doc/guides/linux_gsg/build_sample_apps.rst
lib/librte_eal/common/eal_common_lcore.c
lib/librte_eal/common/eal_common_options.c

index e6f7035..e0aee2d 100644 (file)
@@ -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) {
index acd0311..a89055f 100644 (file)
@@ -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 <domain:bus:devid.func>] [-r NUM] [-v] [--proc-type <primary|secondary|auto>]
+    ./rte-app -n NUM [-c COREMASK] [-b <domain:bus:devid.func>] [-r NUM] [-v] [--proc-type <primary|secondary|auto>]
 
 .. note::
 
index e0de2f5..07d84df 100644 (file)
@@ -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 <domain:bus:devid.func>] [--socket-mem=MB,...] [-m MB] [-r NUM] [-v] [--file-prefix] [--proc-type <primary|secondary|auto>] [-- xen-dom0]
+    ./rte-app -n NUM [-c COREMASK] [-b <domain:bus:devid.func>] [--socket-mem=MB,...] [-m MB] [-r NUM] [-v] [--file-prefix] [--proc-type <primary|secondary|auto>] [-- xen-dom0]
 
 The EAL options are as follows:
 
index 845140b..a4263ba 100644 (file)
@@ -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;
                }
 
index a4cdbaa..c614477 100644 (file)
@@ -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"