From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6AF48A0548; Mon, 20 Sep 2021 11:31:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E77DE40DF7; Mon, 20 Sep 2021 11:31:21 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 1534B40DF5 for ; Mon, 20 Sep 2021 11:31:19 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10112"; a="223140018" X-IronPort-AV: E=Sophos;i="5.85,307,1624345200"; d="scan'208";a="223140018" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2021 02:31:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,307,1624345200"; d="scan'208";a="556038853" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga002.fm.intel.com with ESMTP; 20 Sep 2021 02:31:18 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 20 Sep 2021 02:31:12 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 20 Sep 2021 02:31:12 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 20 Sep 2021 02:31:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GcnXDm5kwNym+vYI1McQ88LJ+SUqBGUZcU2D+xF9hi566xEV85EtgSKQAoAhW6HnVnwB6rPJ8kcXVQchSJvfJViYwJCQczb1ifhGBSZbfBU5YGiFjRQ5dUT7kL+TnIKD3uuiMQD8t5qu7049Xn4vn/Tz9gclPrFVtUGASqPrxg1fbtUGyzxm7q6tJY4ySZspl8n1erROCm2P8b5M8MFk5gQUWEeoVwErK2NMywugkB4XYlQlvUXIJULMiLPuHNqMCOo61vYqQ+OLu9FRICYQAnktMPUeCrhsyklCKSotgvGL1rB/7XXar7Q7VZHqRDnH8AVx2y9CgFP38KN9VMjdfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=xUKbV5QgLjAbN6MWvR/aTRdY6XimBbbSsaFInA3/1+g=; b=VEDUEYqFVzTicg18ThvK8xZtKA4R79BSqPrKpkzYSm4WabURpBqLQWL/vizWQVI5FFSSysUh1J6X47c7rruPG4Zv04y/0grUlFc/AnDKSVBYDmnqOyeooutsIioHotGWxn/nNvnYnjDIh1TfnxgGuPJzRJu4zQUFxZou2tmPUHh7IpX/2Qp4io07uWsriEsJlsm2zHdKnZ6vnPqk98jePg4yVlZzo4ZRJgouMVnKuUX0Nr2E38L+q7q4IjiNAEaZsmJHCRu/DbiJl7qOqZ0FLXsuqpruYJUBZJg9TJXOeLqjCZEX2StycQoeO6sNW/+MOjUaEW5w8qnDUFoZ2ajBTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xUKbV5QgLjAbN6MWvR/aTRdY6XimBbbSsaFInA3/1+g=; b=CuGqHRdcP0tzmG1THsYRN0sxA4vRjUrbw9GXJNN/p0GeNqrB35SGVTfrtAd6Fa6RNX4Gx9gUqjdQGkFpky+havDJtZNbLAxDZ7IZmoHc05HFbqrDqpZvxkNQVhT7XThNa8tzNezjMtTZhrJ2Jtja5SOnqyrHRUyNA6VTTQ0z1JI= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=intel.com; Received: from PH0PR11MB5047.namprd11.prod.outlook.com (2603:10b6:510:3c::18) by PH0PR11MB4967.namprd11.prod.outlook.com (2603:10b6:510:41::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Mon, 20 Sep 2021 09:30:40 +0000 Received: from PH0PR11MB5047.namprd11.prod.outlook.com ([fe80::a495:76aa:e576:1281]) by PH0PR11MB5047.namprd11.prod.outlook.com ([fe80::a495:76aa:e576:1281%4]) with mapi id 15.20.4523.018; Mon, 20 Sep 2021 09:30:40 +0000 To: David Marchand CC: dev , Bruce Richardson , "Thomas Monjalon" References: <20210909134511.18871-2-david.hunt@intel.com> <20210915121104.30581-1-david.hunt@intel.com> From: David Hunt Message-ID: <07e4bbd7-2cd1-1c59-a097-6f669c0920ca@intel.com> Date: Mon, 20 Sep 2021 10:30:33 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.14.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB X-ClientProxiedBy: DB3PR08CA0005.eurprd08.prod.outlook.com (2603:10a6:8::18) To PH0PR11MB5047.namprd11.prod.outlook.com (2603:10b6:510:3c::18) MIME-Version: 1.0 Received: from [10.4.11.161] (95.45.23.115) by DB3PR08CA0005.eurprd08.prod.outlook.com (2603:10a6:8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.18 via Frontend Transport; Mon, 20 Sep 2021 09:30:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2667b997-0b74-4d68-f654-08d97c194f63 X-MS-TrafficTypeDiagnostic: PH0PR11MB4967: X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S3GcWt9VU0kJbkgJomNHKLI1hpYMKtBscS5m2yaIjQH4sEgmbraKmSpV8Aghp9SmnLXUePQ4UXlpnpe7FcUDyiPm2ddnFDEb86/kZfe3Yyk/ZtnwtTkHWZ7cCmZKKhO/PoAMk/vJ30TPXl59abUSm5/0N+ZqYB6nO8BvCYL3pQqY07BJuB1nwHoAkfwXXFiGbw5MMdCCnIezPwgqHa5MFVuo3Ek4WR3Yx8ZhM1BgPGPR5ObUteNORLaS3PhSEZ1520CNZJZLBDkOumOlBhDPkNZ69sQNtbFzY5fzINu9LEQ9sUmscTrRLB754qsJO+J+VN/2D04N9OGsZUELWq+EezPc0/u9iwDjjG41yPVXqtQ81WyRojgPEGoTeiHv0/Rg9xoyKmdh6vPxT4Nvc3R2ACCI6550v4VAuPFYyECGxYvJzUHlUJcwsfNu0KIpCLY+cS0xs9rGZ3W1sA1G514A0aal+am5qLJlmHlIPWvdHAE85ndEtJtjtXePVJhxMbcgiz59ILbTtCOvYMfAqTzCsiD3Hz36ISN4g+RPd1KmEp1EkhA3dmk6wHXaciCIRpVvmOmwWRbF2RyBI2z8ezK0v8kzpPvPrOhOqq79p9uwF+UpL/rIHLpuiJNCGnHbGW4pYELW1FCv5YDUhno8kDjjKn15GfETVHVWsHTPlXOD0ekfmY3hrwMMP2Ils+CxHfyHsTjGZB+OVItlYipOMlAKl73SJljnFZrhZd3CUKLIOKMfEtsx2QHcR5wm4ND4NGrQtFmx6B1eGcjTFaXskXGGgouURp2FPCWB58b6Gvh3LIQgqpkfJP4w87d4w2O5oOrj X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5047.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(4326008)(31686004)(966005)(8676002)(83380400001)(66946007)(66556008)(16576012)(66476007)(8936002)(6666004)(31696002)(54906003)(44832011)(186003)(316002)(26005)(6916009)(6486002)(5660300002)(53546011)(86362001)(508600001)(36756003)(38100700002)(2906002)(956004)(2616005)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aFNUaDJLa0ZZUElJQ2U3YktDdWZvOHlOZmZ1TjNraEMvVmowWU92RXFSVndn?= =?utf-8?B?ZlBCRXhDOExPR3pCZHcwSjZLZWY3LzVGaFpEQk5YbWxEWEdXdHVUTmM0dkdK?= =?utf-8?B?Sk1DODJHM28vYWYxQjFJNkJqN3VmSStBQ0sxOFE1T24zYTAwZ2k2aUh3RG9B?= =?utf-8?B?OWExbVVCZS9EU1BKTUZuV0lYaThDRHJmUFRiWkgvMWNFKzRKTFEzRXVEb0or?= =?utf-8?B?Ui93b2RNb3pzNnhHY0tsUzh3ekI3Y2Jqc0h2OXhJZHZVM0I3SHoxTVZpRkZN?= =?utf-8?B?c0JKT2FBYzFFQmI2NmUrekRMY3lQenNmS2N3TlJuNHBaVmZvYVlSazd1bzhR?= =?utf-8?B?U0t2dnNWSDJCcGdVOTB1ZjJZZG1wTStTSzFjc0R4NkVxOXkvSUJvZjlvYy9Y?= =?utf-8?B?cWRCRXhXYWVPcUJBODlic1RtWFNmS0RWMUw4Qzdrb3JtTkZxZEhCR2pFVEh1?= =?utf-8?B?a0hvcWtZSEpSRi90VGtjQ05ERUlNVjlxN21rQTNzN3Mza0daengxQkZOc2NU?= =?utf-8?B?eXRKL1FmYTU5Y0NHY01MaUhaSnFSdUpnN3lpK0E0VGZoY0I0NVg4UGhrWG90?= =?utf-8?B?eEU4L3F6OEtiTE1OZkNjV2hEdVdFd2lBVzV6TXpic1c3cFNFblB5VWRJeENE?= =?utf-8?B?SUp3aFJ6WlVGK2V5Vlh5bWhUVy9SRzNURFJOcUUxSzA3QVlHM1ZGOHY1V1VR?= =?utf-8?B?d2l1OTB6cE9KVTYyNWxKeUMrYjBoN3VRSS9RMGhheHJRMmJESEhWTHNKUm1t?= =?utf-8?B?ZVhIcXdJMDVCb3RJQVVpTjV1ZmM3U3Qyd3had1B2d05LYWFkNUlPUHBMOUtm?= =?utf-8?B?bkZONmkxWVVmeEtaVW5paVhxNFZxekUwWEI0UlQyaTBRUDFwZ1MzM3ExZHVM?= =?utf-8?B?ZjQyeVR0bEQveXp6Z2JDdytDSHF0WFNGalJpeHE3QWRRN1AvbXdIWHIvaGor?= =?utf-8?B?UW55bTI4MjFReWN4d0EvRjJMcEJmSi96NlZBams5U0hwd1VydXZ2QTNESjlz?= =?utf-8?B?RWM5dHFJVFpCMHZNYWM0OTJIcWtaSFlZUGJSUHRiaWxpRlJMdkxwMUJlZCtu?= =?utf-8?B?TU1SUUV2WGMyclkwQytJWUNBb2g1L3hsZEJnQ1FvKzNEc2tTenMxR3Z3TERS?= =?utf-8?B?VW1oQjlEMFdJMFMrdXZSVHJDRCtra1NaVnhZUnNTZis1aFh2cHEwcDNydzc4?= =?utf-8?B?eE1yM2dtRG1CTCtLSVp5TEdPZTN5S0NxUDUxbW5wNDlQeFdxQ3FWWE14alp2?= =?utf-8?B?clJqd3hFbHUxOTNiamtiY1RTSWpzT1puYU9IYVpyZWVvYk5uUERuc2NRSUJE?= =?utf-8?B?OXJDeE5aZEF4Sis3eGZ3OTQ2SjI4RXJDc2RkcUh2L0x5S1pXWVFMOTJ3YnE5?= =?utf-8?B?cXhrTGpzZTYyT25uWjVWRFFhZ2hDS0daZFFtYld2VDNsU0pWU2lFY3RtUTVQ?= =?utf-8?B?M2dtRjNUTGpGSExUT1RrRG9iY3UvRU44OGlEenBJSXRKSERkODdJSFV5Y0t4?= =?utf-8?B?c1E1N2dEVndaQncrYUJpNHNqblB6REZiMzl3N2h5bXZ4Qm5leGNLRi9EaThW?= =?utf-8?B?a3RTcC9DUFlvNUFWeUdaYTM5a2tiTmZ6NFVPYjFIS0s0YnIwWkloeXdnWXBN?= =?utf-8?B?bXFzcU5xOFpueVh5MzZKN2tlaCtCZThDcG5nb0dydE82N0hMQ0NWTmlqYSt1?= =?utf-8?B?ai9YUFdpeFFFWWNaMTgwZmVQc3RSblNnSitZZXpxOEp3Y2lCdWxlT1JmWVRv?= =?utf-8?Q?PnMyv94PMbdfjr/Y1kMZVbqhM3Fl93srud1nslt?= X-MS-Exchange-CrossTenant-Network-Message-Id: 2667b997-0b74-4d68-f654-08d97c194f63 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5047.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2021 09:30:39.8967 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6WtsHG74SERccERESZAMb76gdxIOgXsgyGV5J6zH/TeeJFg8+CWK08UAohHZ2u6AlmafMtsft9n2CRUEdo3/Yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4967 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2] eal: add additional info if lcore exceeds max cores X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi David, On 16/9/2021 1:34 PM, David Marchand wrote: > On Wed, Sep 15, 2021 at 2:11 PM David Hunt wrote: >> If the user requests to use an lcore above 128 using -l or -c, >> the eal will exit with "EAL: invalid core list syntax" and >> very little other useful information. >> >> This patch adds some extra information suggesting to use --lcores >> so that physical cores above RTE_MAX_LCORE (default 128) can be >> used. This is achieved by using the --lcores option by mapping >> the logical cores in the application onto to physical cores. >> >> There is no change in functionalty, just additional messages >> suggesting how the --lcores option might be used for the supplied >> list of lcores. For example, if "-l 12-14,130,132" is used, we >> see the following additional output on the command line: >> >> EAL: Error = One of the 5 cores provided exceeds RTE_MAX_LCORE (128) >> EAL: Please use --lcores instead, e.g. --lcores 0@12,1@13,2@14,3@130,4@132 >> >> Signed-off-by: David Hunt >> >> --- >> changes in v2 >> * Rather than increasing the default max lcores (as in v1), >> it was agreed to do this instead (switch to --lcores). >> * As the other patches in the v1 of the set are no longer related >> to this change, I'll submit as a separate patch set. > The -c option can use the same kind of warning. Agreed, I'll include in the next version. > >> --- >> lib/eal/common/eal_common_options.c | 31 +++++++++++++++++++++++++---- >> 1 file changed, 27 insertions(+), 4 deletions(-) >> >> diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c >> index ff5861b5f3..5c7a5a45a5 100644 >> --- a/lib/eal/common/eal_common_options.c >> +++ b/lib/eal/common/eal_common_options.c >> @@ -836,6 +836,8 @@ eal_parse_service_corelist(const char *corelist) >> return 0; >> } >> >> +#define MAX_LCORES_STRING 512 >> + >> static int >> eal_parse_corelist(const char *corelist, int *cores) >> { >> @@ -843,6 +845,9 @@ eal_parse_corelist(const char *corelist, int *cores) >> char *end = NULL; >> int min, max; >> int idx; >> + bool overflow = false; >> + char lcores[MAX_LCORES_STRING] = ""; > This code is not performance sensitive. > In the worst case, like for RTE_MAX_LCORES lcores, it gives this: > 0@0,1@1,2@2,3@3,4@4,5@5,6@6,7@7,8@8,9@9,10@10,11@11,12@12,13@13,14@14,15@15,16@16,17@17,18@18,19@19,20@20,21@21,22@22,23@23,24@24,25@25,26@26,27@27,28@28,29@29,30@30,31@31,32@32,33@33,34@34,35@35,36@36,37@37,38@38,39@39,40@40,41@41,42@42,43@43,44@44,45@45,46@46,47@47,48@48,49@49,50@50,51@51,52@52,53@53,54@54,55@55,56@56,57@57,58@58,59@59,60@60,61@61,62@62,63@63,64@64,65@65,66@66,67@67,68@68,69@69,70@70,71@71,72@72,73@73,74@74,75@75,76@76,77@77,78@78,79@79,80@80,81@81,82@82,83@83,84@84,85@85,86@86,87@87,88@88,89@89,90@90,91@91,92@92,93@93,94@94,95@95,96@96,97@97,98@98,99@99,100@100,101@101,102@102,103@103,104@104,105@105,106@106,107@107,108@108,109@109,110@110,111@111,112@112,113@113,114@114,115@115,116@116,117@117,118@118,119@119,120@120,121@121,122@122,123@123,124@124,125@125,126@126,127@127, > > Which is 800+ bytes long, let's switch do dynamic allocations. > Good point. I'll allocate a dozen bytes or so for each physical core detected, that should be enough. > >> + int len = 0; >> >> for (idx = 0; idx < RTE_MAX_LCORE; idx++) >> cores[idx] = -1; >> @@ -862,8 +867,10 @@ eal_parse_corelist(const char *corelist, int *cores) >> idx = strtol(corelist, &end, 10); >> if (errno || end == NULL) >> return -1; >> - if (idx < 0 || idx >= RTE_MAX_LCORE) >> + if (idx < 0) >> return -1; >> + if (idx >= RTE_MAX_LCORE) >> + overflow = true; > The code before was intermixing parsing and validation of values. > This intermix was not that great. > Let's separate those concerns. I see what you mean (in your comments below). Agreed this would be a good idea. > >> while (isblank(*end)) >> end++; >> if (*end == '-') { >> @@ -873,10 +880,19 @@ eal_parse_corelist(const char *corelist, int *cores) >> if (min == RTE_MAX_LCORE) >> min = idx; >> for (idx = min; idx <= max; idx++) { >> - if (cores[idx] == -1) { >> - cores[idx] = count; >> - count++; >> + if (idx < RTE_MAX_LCORE) { >> + if (cores[idx] == -1) >> + cores[idx] = count; >> } >> + count++; >> + if (count == 1) >> + len = len + snprintf(&lcores[len], >> + MAX_LCORES_STRING - len, >> + "%d@%d", count-1, idx); >> + else >> + len = len + snprintf(&lcores[len], >> + MAX_LCORES_STRING - len, >> + ",%d@%d", count-1, idx); > Always appending a , is easier to read, then after the loop, you just > need to trim the last ,. Sure. > >> } >> min = RTE_MAX_LCORE; >> } else >> @@ -886,6 +902,13 @@ eal_parse_corelist(const char *corelist, int *cores) >> >> if (count == 0) >> return -1; >> + if (overflow) { >> + RTE_LOG(ERR, EAL, "Error = One of the %d cores provided exceeds RTE_MAX_LCORE (%d)\n", >> + count, RTE_MAX_LCORE); >> + RTE_LOG(ERR, EAL, "Please use --lcores instead, e.g. --lcores %s\n", >> + lcores); >> + return -1; >> + } >> return 0; > > I'd rework both -c and -l parsing to fill a common data structure, > then validate and generate the suggestion in common helpers. OK, I'll take a look. > Something like: https://github.com/david-marchand/dpdk/commit/lcores > This probably needs some time to look at to enhance style and > carefully check for mem leaks. > Tested with max_lcores = 4 (for my 8 cores laptop): > > $ for opt in "-c 0x" "-c 0x0" "-c 0x1" "-c 0xf" "-c 0x10" "-c 0x1f" > "-c 0x11" "-c 0x30" "-l 0" "-l 0-3" "-l 0-3,2" "-l 4" "-l 0-4" "-l > 0,4" "-l 4,5" > do > echo $opt > echo quit | build/app/dpdk-testpmd $opt --log-level=lib.eal:debug > --no-huge -m 20 -a 0:0.0 -- --total-num-mbufs=2048 -ia |& > grep -E '(ready|RTE_MAX_LCORE|Please use|No lcore|Too many)' > echo > done > > -c 0x > EAL: No lcore in coremask: 0x > > -c 0x0 > EAL: No lcore in coremask: 0x0 > > -c 0x1 > EAL: Main lcore 0 is ready (tid=7f03956d1c00;cpuset=[0]) > > -c 0xf > EAL: Main lcore 0 is ready (tid=7fe464461c00;cpuset=[0]) > EAL: lcore 1 is ready (tid=7fe45f924700;cpuset=[1]) > EAL: lcore 2 is ready (tid=7fe45f123700;cpuset=[2]) > EAL: lcore 3 is ready (tid=7fe45e922700;cpuset=[3]) > > -c 0x10 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@4 > > -c 0x1f > EAL: Too many lcores in coremask: 0x1f > > -c 0x11 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@0,1@4 > > -c 0x30 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: lcore 5 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@4,1@5 > > -l 0 > EAL: Main lcore 0 is ready (tid=7f833b17ac00;cpuset=[0]) > > -l 0-3 > EAL: Main lcore 0 is ready (tid=7f9ff5216c00;cpuset=[0]) > EAL: lcore 2 is ready (tid=7f9fefed8700;cpuset=[2]) > EAL: lcore 3 is ready (tid=7f9fef6d7700;cpuset=[3]) > EAL: lcore 1 is ready (tid=7f9ff06d9700;cpuset=[1]) > > -l 0-3,2 > EAL: Main lcore 0 is ready (tid=7f106b937c00;cpuset=[0]) > EAL: lcore 1 is ready (tid=7f1066dfa700;cpuset=[1]) > EAL: lcore 2 is ready (tid=7f10665f9700;cpuset=[2]) > EAL: lcore 3 is ready (tid=7f1065df8700;cpuset=[3]) > > -l 4 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@4 > > -l 0-4 > EAL: Too many lcores in core list: 0-4 > > -l 0,4 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@0,1@4 > > -l 4,5 > EAL: lcore 4 >= RTE_MAX_LCORE (4) > EAL: lcore 5 >= RTE_MAX_LCORE (4) > EAL: Please use --lcores 0@4,1@5 > >