DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] default to using all cores if no -c, -l, or --lcores options given
@ 2015-09-25 20:37 Rich Lane
  2015-10-26 14:17 ` Thomas Monjalon
  0 siblings, 1 reply; 3+ messages in thread
From: Rich Lane @ 2015-09-25 20:37 UTC (permalink / raw)
  To: dev

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 <rlane@bigswitch.com>
---
 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 e6f7035..e0aee2d 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 acd0311..a89055f 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 <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::
 
diff --git a/doc/guides/linux_gsg/build_sample_apps.rst b/doc/guides/linux_gsg/build_sample_apps.rst
index e0de2f5..07d84df 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 <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:
 
diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c
index 845140b..a4263ba 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 1f459ac..2e40857 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;
@@ -869,7 +860,7 @@ eal_check_common_options(struct internal_config *internal_cfg)
 void
 eal_common_usage(void)
 {
-	printf("-c COREMASK|-l CORELIST -n CHANNELS [options]\n\n"
+	printf("-n CHANNELS [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"
-- 
1.9.1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH] default to using all cores if no -c, -l, or --lcores options given
  2015-09-25 20:37 [dpdk-dev] [PATCH] default to using all cores if no -c, -l, or --lcores options given Rich Lane
@ 2015-10-26 14:17 ` Thomas Monjalon
  2015-10-26 19:47   ` Thomas Monjalon
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Monjalon @ 2015-10-26 14:17 UTC (permalink / raw)
  To: dev

There was no comment for this new behaviour.
It means everybody agree to default to all cores.

2015-09-25 13:37, Rich Lane:
> 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 <rlane@bigswitch.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH] default to using all cores if no -c, -l, or --lcores options given
  2015-10-26 14:17 ` Thomas Monjalon
@ 2015-10-26 19:47   ` Thomas Monjalon
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Monjalon @ 2015-10-26 19:47 UTC (permalink / raw)
  To: Rich Lane; +Cc: dev

2015-10-26 15:17, Thomas Monjalon:
> There was no comment for this new behaviour.
> It means everybody agree to default to all cores.
> 
> 2015-09-25 13:37, Rich Lane:
> > 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 <rlane@bigswitch.com>

Applied, thanks

The documentation about the command line options must be updated and simplified.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-10-26 19:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-25 20:37 [dpdk-dev] [PATCH] default to using all cores if no -c, -l, or --lcores options given Rich Lane
2015-10-26 14:17 ` Thomas Monjalon
2015-10-26 19:47   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).