From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id DDAF1256 for ; Thu, 21 Jul 2016 08:05:00 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP; 20 Jul 2016 23:04:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,398,1464678000"; d="scan'208";a="850375104" Received: from dpdk2.bj.intel.com ([172.16.182.162]) by orsmga003.jf.intel.com with ESMTP; 20 Jul 2016 23:04:58 -0700 From: Wei Dai To: dev@dpdk.org Cc: Wei Dai Date: Thu, 21 Jul 2016 14:03:38 +0800 Message-Id: <1469081018-55300-1-git-send-email-wei.dai@intel.com> X-Mailer: git-send-email 2.5.5 Subject: [dpdk-dev] [PATCH] eal: fix parsing of argument of option --lcores X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 06:05:01 -0000 The '-' in lcores set overrides cpu set of following lcore set in the argument of EAL option --lcores. Fixes: 53e54bf81700 ("eal: new option --lcores for cpu assignment") Signed-off-by: Wei Dai --- lib/librte_eal/common/eal_common_options.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 0a594d7..96eb1a9 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -563,6 +563,7 @@ convert_to_cpuset(rte_cpuset_t *cpusetp, * lcores, cpus could be a single digit/range or a group. * '(' and ')' are necessary if it's a group. * If not supply '@cpus', the value of cpus uses the same as lcores. + * The 'a-b' in lcores not within '(' and ')' means a,a+1,...,b-1,b . * e.g. '1,2@(5-7),(3-5)@(0,2),(0,6),7-8' means start 9 EAL thread as below * lcore 0 runs on cpuset 0x41 (cpu 0,6) * lcore 1 runs on cpuset 0x2 (cpu 1) @@ -571,6 +572,15 @@ convert_to_cpuset(rte_cpuset_t *cpusetp, * lcore 6 runs on cpuset 0x41 (cpu 0,6) * lcore 7 runs on cpuset 0x80 (cpu 7) * lcore 8 runs on cpuset 0x100 (cpu 8) + * e.g. '0-2,(3-5)@(3,4),6@(5,6),7@(5-7)'means start 8 EAL threads as below + * lcore 0 runs on cpuset 0x1 (cpu 0) + * lcore 1 runs on cpuset 0x2 (cpu 1) + * lcore 2 runs on cpuset ox4 (cpu 2) + * lcore 3,4,5 runs on cpuset 0x18 (cpu 3,4) + * lcore 6 runs on cpuset 0x60 (cpu 5,6) + * lcore 7 runs on cpuset 0xe0 (cpu 5,6,7) + * The second case is used to test bugfix for lflags not be cleared after use + */ */ static int eal_parse_lcores(const char *lcores) @@ -679,6 +689,8 @@ eal_parse_lcores(const char *lcores) sizeof(rte_cpuset_t)); } + lflags = 0; + lcores = end + 1; } while (*end != '\0'); -- 2.5.5