All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] eal/linuxapp: Add parameter to specify master lcore id
@ 2014-07-08  8:28 Simon Kuenzer
       [not found] ` <1404808110-16314-1-git-send-email-simon.kuenzer-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
  0 siblings, 1 reply; 21+ messages in thread
From: Simon Kuenzer @ 2014-07-08  8:28 UTC (permalink / raw)
  To: dev-VfR2kkLFssw

This commit enables users to specify the lcore id that
is used as master lcore.

Signed-off-by: Simon Kuenzer <simon.kuenzer-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
---
 lib/librte_eal/linuxapp/eal/eal.c |   33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index 573fd06..4ad5b9b 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -101,6 +101,7 @@
 #define OPT_XEN_DOM0    "xen-dom0"
 #define OPT_CREATE_UIO_DEV "create-uio-dev"
 #define OPT_VFIO_INTR    "vfio-intr"
+#define OPT_MASTER_LCORE "master-lcore"
 
 #define RTE_EAL_BLACKLIST_SIZE	0x100
 
@@ -336,6 +337,7 @@ eal_usage(const char *prgname)
 	       "[--proc-type primary|secondary|auto] \n\n"
 	       "EAL options:\n"
 	       "  -c COREMASK  : A hexadecimal bitmask of cores to run on\n"
+	       "  --"OPT_MASTER_LCORE" ID: Core ID that is used as master\n"
 	       "  -n NUM       : Number of memory channels\n"
 		   "  -v           : Display version information on startup\n"
 	       "  -d LIB.so    : add driver (can be used multiple times)\n"
@@ -468,6 +470,21 @@ eal_parse_coremask(const char *coremask)
 	return 0;
 }
 
+/* Changes the lcore id of the master thread */
+static int
+eal_parse_master_lcore(const char *arg)
+{
+	struct rte_config *cfg = rte_eal_get_configuration();
+	int master_lcore = atoi(arg);
+
+	if (!(master_lcore >= 0 && master_lcore < RTE_MAX_LCORE))
+		return -1;
+	if (cfg->lcore_role[master_lcore] != ROLE_RTE)
+		return -1;
+	cfg->master_lcore = master_lcore;
+	return 0;
+}
+
 static int
 eal_parse_syslog(const char *facility)
 {
@@ -653,6 +670,7 @@ eal_parse_args(int argc, char **argv)
 		{OPT_HUGE_DIR, 1, 0, 0},
 		{OPT_NO_SHCONF, 0, 0, 0},
 		{OPT_PROC_TYPE, 1, 0, 0},
+		{OPT_MASTER_LCORE, 1, 0, 0},
 		{OPT_FILE_PREFIX, 1, 0, 0},
 		{OPT_SOCKET_MEM, 1, 0, 0},
 		{OPT_PCI_WHITELIST, 1, 0, 0},
@@ -802,6 +820,21 @@ eal_parse_args(int argc, char **argv)
 			else if (!strcmp(lgopts[option_index].name, OPT_PROC_TYPE)) {
 				internal_config.process_type = eal_parse_proc_type(optarg);
 			}
+			else if (!strcmp(lgopts[option_index].name, OPT_MASTER_LCORE)) {
+				if (!coremask_ok) {
+					RTE_LOG(ERR, EAL, "please specify the master "
+							"lcore id after specifying "
+							"the coremask\n");
+					eal_usage(prgname);
+					return -1;
+				}
+				if (eal_parse_master_lcore(optarg) < 0) {
+					RTE_LOG(ERR, EAL, "invalid parameter for --"
+							OPT_MASTER_LCORE "\n");
+					eal_usage(prgname);
+					return -1;
+				}
+			}
 			else if (!strcmp(lgopts[option_index].name, OPT_FILE_PREFIX)) {
 				internal_config.hugefile_prefix = optarg;
 			}
-- 
1.7.10.4

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

end of thread, other threads:[~2014-11-05 23:43 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-08  8:28 [PATCH] eal/linuxapp: Add parameter to specify master lcore id Simon Kuenzer
     [not found] ` <1404808110-16314-1-git-send-email-simon.kuenzer-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
2014-07-08  9:42   ` Simon Kuenzer
     [not found]     ` <53BBBCFC.1070907-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
2014-07-21 16:21       ` Simon Kuenzer
     [not found]         ` <53CD3E26.1060708-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
2014-07-22 23:40           ` Hiroshi Shimamoto
     [not found]             ` <7F861DC0615E0C47A872E6F3C5FCDDBD01161242-ZmjkEB1lVlLt6d3pZDjeaEtBU8KWyXPq@public.gmane.org>
2014-07-23  7:50               ` Thomas Monjalon
2014-07-23  8:53                 ` Hiroshi Shimamoto
     [not found]                   ` <7F861DC0615E0C47A872E6F3C5FCDDBD011625D2-ZmjkEB1lVlLt6d3pZDjeaEtBU8KWyXPq@public.gmane.org>
2014-07-23  9:04                     ` Thomas Monjalon
2014-07-23 12:05                       ` Simon Kuenzer
2014-08-04  2:48                       ` Hiroshi Shimamoto
2014-07-23 12:10                     ` Simon Kuenzer
     [not found]                       ` <53CFA637.1090706-kcmmt4fgdiuHXe+LvDLADg@public.gmane.org>
2014-11-03 17:02                         ` Aaron Campbell
     [not found]                           ` <CDC4C356-008C-4099-A6BB-16D931CBBF52-rd7evPjynkNeoWH0uzbU5w@public.gmane.org>
2014-11-03 22:29                             ` Thomas Monjalon
2014-07-23  8:03               ` Gray, Mark D
2014-11-03 17:02   ` Aaron Campbell
     [not found]     ` <582DA5F6-0A84-4FDD-8DC6-D8E5C6B1652A-rd7evPjynkNeoWH0uzbU5w@public.gmane.org>
2014-11-04 19:00       ` Thomas Monjalon
2014-11-05 15:34         ` Aaron Campbell
2014-11-04 21:40   ` [PATCH v2] eal: add option --master-lcore Thomas Monjalon
     [not found]     ` <1415137233-6364-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-05 11:54       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB977258213A2877-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-05 16:52           ` Thomas Monjalon
2014-11-05 15:34       ` Aaron Campbell
2014-11-05 23:43       ` Simon Kuenzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.