From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id B8B211B6AD for ; Fri, 13 Oct 2017 14:35:42 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E506AC059B87; Fri, 13 Oct 2017 12:35:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E506AC059B87 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=maxime.coquelin@redhat.com Received: from [10.36.112.24] (ovpn-112-24.ams2.redhat.com [10.36.112.24]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 665A95C544; Fri, 13 Oct 2017 12:35:40 +0000 (UTC) To: Santosh Shukla , dev@dpdk.org Cc: thomas@monjalon.net, jerin.jacob@caviumnetworks.com References: <20171013115501.1345-1-santosh.shukla@caviumnetworks.com> From: Maxime Coquelin Message-ID: <5bc3a00c-2027-7b83-db34-719bdae051be@redhat.com> Date: Fri, 13 Oct 2017 14:35:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171013115501.1345-1-santosh.shukla@caviumnetworks.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 13 Oct 2017 12:35:42 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH] eal: call plugin init before device parse X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Oct 2017 12:35:43 -0000 On 10/13/2017 01:55 PM, Santosh Shukla wrote: > Default eal_init code calls > 0. eal_plugins_init > 1. eal_option_device_parse > 2. rte_bus_scan > > IOVA commit:cf408c224 missed on calling eal_plugins_init before > eal_option_device_parse, rte_bus_scan and that introduced below > regression for shared mode: > > with CONFIG_RTE_BUILD_SHARED_LIB=y: > > 'net_vhost0,iface=/tmp/vhost-user2' -d ./install/lib/librte_pmd_vhost.so > -- --portmask=1 --disable-hw-vlan -i --rxq=1 --txq=1 --nb-cores=1 > --eth-peer=0,52:54:00:11:22:12 > EAL: Detected 4 lcore(s) > ERROR: failed to parse device "net_vhost0" > EAL: Unable to parse device 'net_vhost0,iface=/tmp/vhost-user2' > PANIC in main(): > Cannot init EAL > > Fixes: cf408c224 ("eal: auto detect IOVA mode") > > Reported-by: Maxime Coquelin > Signed-off-by: Santosh Shukla > --- > lib/librte_eal/bsdapp/eal/eal.c | 10 +++++++--- > lib/librte_eal/linuxapp/eal/eal.c | 10 +++++++--- > 2 files changed, 14 insertions(+), 6 deletions(-) Tested-by: Maxime Coquelin Thanks, Maxime > > diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c > index 30d3bd5b5..e981721aa 100644 > --- a/lib/librte_eal/bsdapp/eal/eal.c > +++ b/lib/librte_eal/bsdapp/eal/eal.c > @@ -551,6 +551,13 @@ rte_eal_init(int argc, char **argv) > return -1; > } > > + if (eal_plugins_init() < 0) { > + rte_eal_init_alert("Cannot init plugins\n"); > + rte_errno = EINVAL; > + rte_atomic32_clear(&run_once); > + return -1; > + } > + > if (eal_option_device_parse()) { > rte_errno = ENODEV; > rte_atomic32_clear(&run_once); > @@ -635,9 +642,6 @@ rte_eal_init(int argc, char **argv) > > eal_check_mem_on_local_socket(); > > - if (eal_plugins_init() < 0) > - rte_eal_init_alert("Cannot init plugins\n"); > - > eal_thread_init_master(rte_config.master_lcore); > > ret = eal_thread_dump_affinity(cpuset, RTE_CPU_AFFINITY_STR_LEN); > diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c > index ec37c52c0..ad7278989 100644 > --- a/lib/librte_eal/linuxapp/eal/eal.c > +++ b/lib/librte_eal/linuxapp/eal/eal.c > @@ -786,6 +786,13 @@ rte_eal_init(int argc, char **argv) > return -1; > } > > + if (eal_plugins_init() < 0) { > + rte_eal_init_alert("Cannot init plugins\n"); > + rte_errno = EINVAL; > + rte_atomic32_clear(&run_once); > + return -1; > + } > + > if (eal_option_device_parse()) { > rte_errno = ENODEV; > rte_atomic32_clear(&run_once); > @@ -882,9 +889,6 @@ rte_eal_init(int argc, char **argv) > > eal_check_mem_on_local_socket(); > > - if (eal_plugins_init() < 0) > - rte_eal_init_alert("Cannot init plugins\n"); > - > eal_thread_init_master(rte_config.master_lcore); > > ret = eal_thread_dump_affinity(cpuset, RTE_CPU_AFFINITY_STR_LEN); >