From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by dpdk.org (Postfix) with ESMTP id 122F75918 for ; Wed, 8 Oct 2014 10:36:22 +0200 (CEST) Received: by mail-wi0-f169.google.com with SMTP id cc10so11691706wib.0 for ; Wed, 08 Oct 2014 01:43:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=YzLXAW34Cd2OWOgL3fBonNV3VC5+lwLzE0/ZgnI9ui0=; b=l9Yk0BHa6bMAW+JRwTLH3bLHLTQVRzrE/QmOLugBM+4EBV51DZIfWSmaA/h1w7Kguv YD3OH7Jmqv4Hi1z6Ct7Cm+MTK9WnVrZDPXvJp3kJn05A+u8xUddYV1TIygs0sJ7I30X5 xIiO/spsMex4giFKbCATcna7PgCVTNPdXFlsJRhWoYpv8cs5P8Etj/BMv7ur9yGvDZq6 ADWTJmQKOyYyTrZ9l23stsxiQbahy3vComcZCZz/Ton0Qfw4dJr3VV0N2reuUXw1jNxb cwn4xRcSUmP8kSX8XyrpfiHVW+7t9sgUCw/grfVNIolB62UKCxZYpbzz13xVb1NbsH7A 2SLQ== X-Gm-Message-State: ALoCoQngPcZtIxs1dQ2VVMUs33Wp7Y+rqIoMjuo4VeaVPnh/6VBUqlIiA/I0OUvhbwII8ChF/sBD X-Received: by 10.194.143.69 with SMTP id sc5mr10478306wjb.49.1412757818310; Wed, 08 Oct 2014 01:43:38 -0700 (PDT) Received: from alcyon.dev.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by mx.google.com with ESMTPSA id lu10sm10885233wjb.13.2014.10.08.01.43.37 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Oct 2014 01:43:37 -0700 (PDT) From: David Marchand To: dev@dpdk.org Date: Wed, 8 Oct 2014 10:43:31 +0200 Message-Id: <1412757811-10625-1-git-send-email-david.marchand@6wind.com> X-Mailer: git-send-email 1.7.10.4 Subject: [dpdk-dev] [PATCH] eal/bsd: fix core detection 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: Wed, 08 Oct 2014 08:36:22 -0000 Following "options parsing" patchset (commit d7cb626f and 489a9d6c), core detection is not working correctly on bsd. ./x86_64-native-bsdapp-gcc/app/test -c f -n 4 -- -i [...] EAL: lcore 0 unavailable EAL: invalid coremask Align bsd to linux: - commit f563a372 "eal: fix recording of detected/enabled logical cores" - commit 4f04db8b "eal: check coremask against detected lcores" Reported-by: Zhan, Zhaochen Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal.c | 6 +++--- lib/librte_eal/bsdapp/eal/eal_lcore.c | 15 +++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index c40a59a..ca99cb9 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -517,6 +517,9 @@ rte_eal_init(int argc, char **argv) if (rte_eal_log_early_init() < 0) rte_panic("Cannot init early logs\n"); + if (rte_eal_cpu_init() < 0) + rte_panic("Cannot detect lcores\n"); + fctret = eal_parse_args(argc, argv); if (fctret < 0) exit(1); @@ -551,9 +554,6 @@ rte_eal_init(int argc, char **argv) rte_config_init(); - if (rte_eal_cpu_init() < 0) - rte_panic("Cannot detect lcores\n"); - if (rte_eal_memory_init() < 0) rte_panic("Cannot init memory\n"); diff --git a/lib/librte_eal/bsdapp/eal/eal_lcore.c b/lib/librte_eal/bsdapp/eal/eal_lcore.c index 43a5c01..5b52eba 100644 --- a/lib/librte_eal/bsdapp/eal/eal_lcore.c +++ b/lib/librte_eal/bsdapp/eal/eal_lcore.c @@ -71,16 +71,18 @@ rte_eal_cpu_init(void) unsigned count = 0; const unsigned ncpus = get_ncpus(); - - /* disable lcores that were not detected */ - RTE_LCORE_FOREACH(lcore_id) { - + /* + * Parse the maximum set of logical cores, detect the subset of running + * ones and enable them by default. + */ + for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) { lcore_config[lcore_id].detected = (lcore_id < ncpus); if (lcore_config[lcore_id].detected == 0) { config->lcore_role[lcore_id] = ROLE_OFF; continue; } - count++; + /* By default, each detected core is enabled */ + config->lcore_role[lcore_id] = ROLE_RTE; lcore_config[lcore_id].core_id = cpu_core_id(lcore_id); lcore_config[lcore_id].socket_id = cpu_socket_id(lcore_id); if (lcore_config[lcore_id].socket_id >= RTE_MAX_NUMA_NODES) @@ -93,8 +95,9 @@ rte_eal_cpu_init(void) #endif RTE_LOG(DEBUG, EAL, "Detected lcore %u\n", lcore_id); + count ++; } - + /* Set the count of enabled logical cores of the EAL configuration */ config->lcore_count = count; RTE_LOG(DEBUG, EAL, "Support maximum %u logical core(s) by configuration.\n", RTE_MAX_LCORE); -- 1.7.10.4