From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f177.google.com (mail-wr0-f177.google.com [209.85.128.177]) by dpdk.org (Postfix) with ESMTP id 833D62C8 for ; Tue, 20 Jun 2017 23:15:14 +0200 (CEST) Received: by mail-wr0-f177.google.com with SMTP id 77so108011022wrb.1 for ; Tue, 20 Jun 2017 14:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=gjhTbTypWIXSd/6q1bKLdDAHXAdu/9prBeIAVL2Z9y0=; b=V1vUMSOwnlDwiZ0g36bZH62RQBUvWHullbmlK2x43DMIKXSGZdZWGUG4NPuQJgqj07 6dsPg2BM6u1D34kezvSFcytEzq/DGQ5agfKV2Os9QH6ZW8dGspeZ7hwozN2ZZwqKiP+P 9adQhhcka4hf8xjc0LdVLKE1b9Zn3bbs+9SxHI7/p2O5Qjk2i3F5mswVtX30sB+zz63/ ayvNnlkuR7t9uP+s/TpuNdQGI2mzcrkuLLfniy+IZLlfMccd6W6yLEj6fyz4Xb79zQSU 0NheL53KiNHRBvHM8+uH0HofOnrzg4yRewIsjbhEsMsT8CYqf2VeFTmyR6aMAECDNJi4 HJhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=gjhTbTypWIXSd/6q1bKLdDAHXAdu/9prBeIAVL2Z9y0=; b=uAakO8Az7jVJdhKcSSCwtQQPxLr7QtJSCtbGaXb4ncylggwnqtubfnaB9rKtKwxDhU Gj7oncbn7otv5xdIcwkMwahHTUO2vlnxvkCc301CBkJnuM4RmWGWS71r+oA1wI0+rdD4 KGiREdpRTPqGjZWWVsGvhikeI39hzCRAyYtytnfse4CoBm14Rp11nVFbQk3xDBV4Mhze 3YpoBPBa0nJLkjmvpqBy62TTDhfh6itHsE6plSRrXol5jjBo5TYXLS9i8iehFa0XbI5S mYQdEwlLLpuZbqucpZ3s4f7NTCjMdxiuJFKU7qCNS40Ixu5sEVv6dr1Hjd7IPZu5Qn4j F3Pg== X-Gm-Message-State: AKS2vOyQoyzbf5j0b6v+tpHPrfw2BapxiU0Tyr0gDFK/ZriPVjOxUPld EIN5r6Vy/Yzkiei8Q2o= X-Received: by 10.223.136.116 with SMTP id e49mr12156070wre.14.1497993313764; Tue, 20 Jun 2017 14:15:13 -0700 (PDT) Received: from bidouze.vm.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id x94sm16876828wrb.47.2017.06.20.14.15.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Jun 2017 14:15:12 -0700 (PDT) Date: Tue, 20 Jun 2017 23:15:04 +0200 From: =?iso-8859-1?Q?Ga=EBtan?= Rivet To: "terry.montague.1980@btinternet.com" Cc: users@dpdk.org Message-ID: <20170620211504.GL29091@bidouze.vm.6wind.com> References: <12471190.37650.1497970027948.JavaMail.defaultUser@defaultHost> <20170620145705.GI29091@bidouze.vm.6wind.com> <18287610.38744.1497970879233.JavaMail.defaultUser@defaultHost> <8604398.38970.1497971090851.JavaMail.defaultUser@defaultHost> <20170620155733.GK29091@bidouze.vm.6wind.com> <24012021.44488.1497975701541.JavaMail.defaultUser@defaultHost> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <24012021.44488.1497975701541.JavaMail.defaultUser@defaultHost> User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [dpdk-users] Using DPDK with a pre-existing C++ application compiled in Eclipse. X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2017 21:15:14 -0000 On Tue, Jun 20, 2017 at 05:21:41PM +0100, terry.montague.1980@btinternet.com wrote: > > > Hi Gaetan, > > I mean I'm building DPDK before I link with my app eclipse. > Ok. You can thus take the librte_pmd_i40e.a file within your build result, and link against it. This should yield better result than using dynamic linking with the shared object. It's only a matter of giving the proper flags at compile time, you should have everything necessary. > Switching CONFIG_RTE_BUILD_SHARED_LIB to 'y', rebuilding DPDK and adding -d options for the path as well as librte_pmd_i40e.so.1.1 going into rte_eal_init(), I'm seeing the devices being detected. > > Any ideas on this problem with libdpdk.so below ? > Unfortunately no, sorry. I never use the DPDK this way (well, I also never really configured the DPDK myself). I do not know why the EAL react this way. However both for performance and as a way to bypass this issue, I'd suggest trying to use static linking and see if that's acceptable for you. You get better perf and the EAL plugin issue is unlikely to happen. > Many thanks > > Terry > > EAL: Running eal_plugins_init > EAL: open shared lib librte_pmd_i40e.so.1.1 > EAL: open shared lib /usr/local/lib/librte_net.so.1.1 > EAL: open shared lib /usr/local/lib/librte_port.so.3.1 > EAL: open shared lib /usr/local/lib/libboost_random.so.1.63.0 > EAL: open shared lib /usr/local/lib/libboost_math_c99l.so.1.63.0 > EAL: open shared lib /usr/local/lib/libApp.so > EAL: open shared lib /usr/local/lib/libmc_enc_vc1.so > EAL: open shared lib /usr/local/lib/libboost_fiber.so > EAL: open shared lib /usr/local/lib/libmc_dec_dv100.so > EAL: open shared lib /usr/local/lib/libmc_mfimport.so > EAL: open shared lib /usr/local/lib/librte_pmd_crypto_scheduler.so.1.1 > EAL: open shared lib /usr/local/lib/librte_eal.so > EAL: open shared lib /usr/local/lib/librte_mempool.so > EAL: open shared lib /usr/local/lib/librte_pmd_bnxt.so.1.1 > EAL: open shared lib /usr/local/lib/librte_mbuf.so > EAL: open shared lib /usr/local/lib/libboost_math_c99f.so > EAL: open shared lib /usr/local/lib/librte_pmd_bnxt.so > EAL: open shared lib /usr/local/lib/libmc_config_vc3.so > EAL: open shared lib /usr/local/lib/libboost_date_time.so.1.63.0 > EAL: open shared lib /usr/local/lib/libboost_math_tr1.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_lpm.so > EAL: open shared lib /usr/local/lib/libboost_context.so.1.63.0 > EAL: open shared lib /usr/local/lib/libmc_enc_mp2v.so > EAL: open shared lib /usr/local/lib/libPixelXMLProtocol.so > EAL: open shared lib /usr/local/lib/libboost_random.so > EAL: open shared lib /usr/local/lib/libboost_iostreams.so > EAL: open shared lib /usr/local/lib/libmc_enc_j2k.so > EAL: open shared lib /usr/local/lib/librte_pmd_bond.so > EAL: open shared lib /usr/local/lib/libboost_chrono.so > EAL: open shared lib /usr/local/lib/librte_meter.so > EAL: open shared lib /usr/local/lib/librte_pmd_bond.so.1.1 > EAL: open shared lib /usr/local/lib/libboost_log.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_hash.so.2.1 > EAL: open shared lib /usr/local/lib/libboost_wserialization.so > EAL: open shared lib /usr/local/lib/libboost_chrono.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_acl.so.2.1 > EAL: open shared lib /usr/local/lib/libmc_parser_sdp.so > EAL: open shared lib /usr/local/lib/librte_metrics.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_ring.so.2.1 > EAL: open shared lib /usr/local/lib/libmc_demux_mxf.so > EAL: open shared lib /usr/local/lib/libmc_demux_dv.so > EAL: open shared lib /usr/local/lib/librte_latencystats.so > EAL: open shared lib /usr/local/lib/librte_pipeline.so.3.1 > EAL: open shared lib /usr/local/lib/librte_cryptodev.so.2.1 > EAL: open shared lib /usr/local/lib/libboost_filesystem.so > EAL: open shared lib /usr/local/lib/libmc_demux_asf.so > EAL: open shared lib /usr/local/lib/librte_pmd_skeleton_event.so > EAL: open shared lib /usr/local/lib/libmc_demux_mp4.so > EAL: open shared lib /usr/local/lib/libboost_program_options.so.1.63.0 > EAL: open shared lib /usr/local/lib/libboost_serialization.so.1.63.0 > EAL: open shared lib /usr/local/lib/libmc_bc_dec_avc.so > EAL: open shared lib /usr/local/lib/librte_eventdev.so > EAL: open shared lib /usr/local/lib/librte_ring.so > EAL: open shared lib /usr/local/lib/libdemo_trans_audio_converter.so > EAL: open shared lib /usr/local/lib/libboost_locale.so > EAL: open shared lib /usr/local/lib/libboost_unit_test_framework.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_sched.so > EAL: open shared lib /usr/local/lib/libboost_graph.so.1.63.0 > EAL: open shared lib /usr/local/lib/libmc_enc_mpa.so > EAL: open shared lib /usr/local/lib/librte_bitratestats.so.1.1 > EAL: open shared lib /usr/local/lib/librte_cmdline.so.2.1 > EAL: open shared lib /usr/local/lib/librte_pmd_lio.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_af_packet.so > EAL: open shared lib /usr/local/lib/libboost_regex.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_efd.so > EAL: open shared lib /usr/local/lib/librte_pmd_fm10k.so.1.1 > EAL: open shared lib /usr/local/lib/libboost_math_tr1l.so.1.63.0 > EAL: open shared lib /usr/local/lib/libboost_timer.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_latencystats.so.1.1 > EAL: open shared lib /usr/local/lib/libmc_bc_net_source.so > EAL: open shared lib /usr/local/lib/librte_pmd_octeontx_ssovf.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_thunderx_nicvf.so.1.1 > EAL: open shared lib /usr/local/lib/librte_timer.so > EAL: open shared lib /usr/local/lib/libboost_coroutine.so > EAL: open shared lib /usr/local/lib/libboost_math_tr1l.so > EAL: open shared lib /usr/local/lib/librte_mempool_ring.so > EAL: open shared lib /usr/local/lib/libDNxHR.so > EAL: open shared lib /usr/local/lib/libmc_mux_asf.so > EAL: open shared lib /usr/local/lib/librte_cfgfile.so.2.1 > EAL: open shared lib /usr/local/lib/librte_pmd_nfp.so.1.1 > EAL: open shared lib /usr/local/lib/libmc_bc_enc_avc.so > EAL: open shared lib /usr/local/lib/librte_eal.so.4.1 > EAL: open shared lib /usr/local/lib/librte_pmd_vmxnet3_uio.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_ark.so.1.1 > EAL: open shared lib /usr/local/lib/librte_meter.so.1.1 > EAL: open shared lib /usr/local/lib/librte_reorder.so > EAL: open shared lib /usr/local/lib/libboost_fiber.so.1.63.0 > EAL: open shared lib /usr/local/lib/libboost_iostreams.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_pmd_sfc_efx.so > EAL: open shared lib /usr/local/lib/libboost_context.so > EAL: open shared lib /usr/local/lib/libboost_type_erasure.so > EAL: open shared lib /usr/local/lib/librte_lpm.so.2.1 > EAL: open shared lib /usr/local/lib/libboost_thread.so > EAL: open shared lib /usr/local/lib/libmc_net_source.so > EAL: open shared lib /usr/local/lib/librte_efd.so.1.1 > EAL: open shared lib /usr/local/lib/libboost_coroutine.so.1.63.0 > EAL: open shared lib /usr/local/lib/librte_pmd_sw_event.so > EAL: open shared lib /usr/local/lib/libmc_manifest_generator.so > EAL: open shared lib /usr/local/lib/libAVX2Support.so > EAL: open shared lib /usr/local/lib/libmc_dec_spic.so > EAL: open shared lib /usr/local/lib/libPipeline.so > EAL: open shared lib /usr/local/lib/librte_pmd_ark.so > EAL: open shared lib /usr/local/lib/libmc_dec_mp2v.so > EAL: open shared lib /usr/local/lib/librte_eventdev.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_virtio.so.1.1 > EAL: open shared lib /usr/local/lib/librte_pmd_cxgbe.so.1.1 > EAL: open shared lib /usr/local/lib/libboost_unit_test_framework.so > EAL: open shared lib /usr/local/lib/libdpdk.so > EAL: /usr/local/lib/libdpdk.so: invalid ELF header > EAL: FATAL: Cannot init plugins > > > ----Original message---- > From : gaetan.rivet@6wind.com > Date : 20/06/17 - 16:57 (BST) > To : terry.montague.1980@btinternet.com > Cc : users@dpdk.org > Subject : Re: [dpdk-users] Using DPDK with a pre-existing C++ application compiled in Eclipse. > > On Tue, Jun 20, 2017 at 04:04:50PM +0100, terry.montague.1980@btinternet.com wrote: > > > > > > Hi Gaëtan, > > > > Its really only the net-i40e driver I need (for Intel XL710 cards). I'm not building DPDK itself as a shared library though. > > > > Where are you getting your prebuilt rte_ libs? > If you have the corresponding archive file, do you link rte_pmd_i40e? > > > Best Regards > > > > Terry > > > > > > > > ----Original message---- > > From : gaetan.rivet@6wind.com > > Date : 20/06/17 - 15:57 (BST) > > To : terry.montague.1980@btinternet.com > > Cc : users@dpdk.org > > Subject : Re: [dpdk-users] Using DPDK with a pre-existing C++ application compiled in Eclipse. > > > > Hi, > > > > On Tue, Jun 20, 2017 at 03:47:07PM +0100, terry.montague.1980@btinternet.com wrote: > > > Hi there, > > > Please excuse what to some may appear to be an stupid question. > > > I'm trying to use DPDK with an existing C++ application on Linux, using Eclipse Neon.2 as the IDE due to the use of a lot of 3rd party libraries. I'm not using the DPDK build process with the .mk makefiles. I'm just linking to the prebuilt rte_ libs. > > > I have got the project to compile, but when running rte_eal_init() with some suitable arguments that I know to be good in a simple standalone application, the PMDs appear to be absent, so the app cannot probe any PCI devices. > > > Is there any way this approach is going to work, or do applications that use DPDK have to be compiled as per the example applications with rte.vars.mk/rte.extapp.mk ? > > > Thanks in advance. > > > Terry > > > > Which NIC are you using? Which PMD do you need? > > > > You can dynamically link specific DPDK drivers using -d in the EAL > > parameters. Note that using PMDs as dynamic libraries may slightly > > impair performances. > > > > -- > > Gaëtan Rivet > > 6WIND > > > > > > -- > Gaëtan Rivet > 6WIND > -- Gaëtan Rivet 6WIND