From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Horman Subject: Re: compile dpdk with no avx Date: Wed, 12 Nov 2014 10:23:49 -0500 Message-ID: <20141112152349.GA7554@localhost.localdomain> References: <1A791056FCD70F458405B58B79F5C2F7069C605F@RAD-W2KSRV11.radcom.co.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "" To: "De Lara Guarch, Pablo" Return-path: Content-Disposition: inline In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" On Wed, Nov 12, 2014 at 02:24:10PM +0000, De Lara Guarch, Pablo wrote: > > > > -----Original Message----- > > From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org] On Behalf Of Masaru Oki > > Sent: Wednesday, November 12, 2014 1:48 PM > > To: Yaron Illouz > > Cc: > > Subject: Re: [dpdk-dev] compile dpdk with no avx > > > > Hi, > > > > Some libraries need AVX instruction, but if you don't use, it can disable. > > e.g. CONFIG_RTE_LIBRTE_IXGBE_PMD=n in config file. > > > > > > 2014-11-12 21:45 GMT+09:00 Yaron Illouz : > > > Hi > > > > > > > > > > > > I use dpdk in my product. I can't change my dpdk version. > > > > > > I compile it on a server that have avx. > > > > > > Most of the time, it run on machine that have avx, but not always. > > > > > > > > > > > > When running the product on a machine with no avx, it crash on illegal > > > instruction. > > > > > > The current solution is to build it on a computer with no avx. > > > > > > > > > > > > Is there a compilation flag to disable avx? So it doesn't matter on > > > which computer I compiled it. > > Basically, you are looking at cross-compiling DPDK. One thing you could do > is go to one of the config files (i.e. defconfig_x86-64-native-linuxapp-gcc) > and change CONFIG_RTE_MACHINE, from "native" to one of the > micro-architectures that do not have avx, such as "wsm" (Westmere). > What version of dpdk are you running? We fixed this a while ago with commits 8777aabc538fdac24457958eaab929f33d6c4cdf and 074f54ad03ee0c84dcae235933e2b426208fe591. They do runtime checking for availability of the AVX and SSE3 instructions and only exeucte paths using those instructions if the running cpu supports them. Note that you are still required to build for the default arch. Neil > Regards, > Pablo > > > > > > > > > > > > > Compile flag > > > > > > defconfig_x86_64-default-linuxapp-gcc > > > > > > > > > > > > Dpdk version > > > > > > PACKAGE_VERSION_MAJOR_NUMBER=1 > > > > > > PACKAGE_VERSION_MINOR_NUMBER=6 > > > > > > PACKAGE_VERSION_PATCH_NUMBER=0 > > > > > > PACKAGE_VERSION_BUILD_NUMBER=18 > > > > > > > > > > > > Gcc version > > > > > > gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) > > > > > > > > > > > > OS > > > > > > CentOS release 6.3 (Final) > > > > > > > > > > > > > > > > > > > > > > > > > > >