[dpdk-dev] [PATCH v3 0/3] AVX512 vPMD on i40e

Rong, Leyi leyi.rong at intel.com
Tue Jan 26 17:17:34 CET 2021


> -----Original Message-----
> From: David Marchand <david.marchand at redhat.com>
> Sent: Monday, January 25, 2021 10:35 PM
> To: Kadam, Pallavi <pallavi.kadam at intel.com>
> Cc: Yigit, Ferruh <ferruh.yigit at intel.com>; Ali Alnubani <alialnu at nvidia.com>;
> NBU-Contact-Thomas Monjalon <thomas at monjalon.net>; Richardson, Bruce
> <bruce.richardson at intel.com>; Tal Shnaiderman <talshn at nvidia.com>; Odi Assli
> <odia at nvidia.com>; Rong, Leyi <leyi.rong at intel.com>; Zhang, Qi Z
> <qi.z.zhang at intel.com>; Lu, Wenzhuo <wenzhuo.lu at intel.com>; Xing, Beilei
> <beilei.xing at intel.com>; Menon, Ranjit <ranjit.menon at intel.com>;
> dev at dpdk.org; Raslan Darawsheh <rasland at nvidia.com>
> Subject: Re: [dpdk-dev] [PATCH v3 0/3] AVX512 vPMD on i40e
> 
> On Thu, Jan 21, 2021 at 6:02 AM Kadam, Pallavi <pallavi.kadam at intel.com>
> wrote:
> > On 1/20/2021 11:21 PM, Ferruh Yigit wrote:
> >
> > And for the mingw, I have same result with Ali, I can reproduce with (Fedora
> MinGW 9.2.1-6.fc32).
> >
> > But different from the CI, I am getting the error [1] for all following files:
> > rte_random.c
> > i40e_rxtx_vec_sse.c
> > i40e_rxtx_vec_avx512.c
> > i40e_rxtx_vec_avx2.c
> > rte_ethdev.c
> >
> > [1] Error: invalid register for .seh_savexmm
> >
> >
> > There is a stackoverflow entry for it:
> > https://stackoverflow.com/questions/43152633/invalid-register-for-seh-
> > savexmm-in-cygwin
> >
> > If I use '-fno-asynchronous-unwind-tables' as suggested there, the build works
> fine.
> >
> > So the problem may not be just 'i40e_rxtx_vec_avx512.c'.
> >
> >
> > If I change the machine type from 'native' to 'corei7' [2], the build error
> reduced to only 'i40e_rxtx_vec_avx512.c', so the problem seems happens when
> avx512 is supported by CPU, in this case compiler seems has a defect.
> > And since for 'i40e_rxtx_vec_avx512.c' the '-march=skylake-avx512' explicitly
> set can cause the problem seen in all machines.
> >
> > [2]
> >  diff --git a/config/x86/cross-mingw b/config/x86/cross-mingw  index
> > 4c15a7fa2e..7cee238add 100644
> >  --- a/config/x86/cross-mingw
> >  +++ b/config/x86/cross-mingw
> >  @@ -9,5 +9,5 @@ pkgconfig = 'x86_64-w64-mingw32-pkg-config'
> >   [host_machine]
> >   system = 'windows'
> >   cpu_family = 'x86_64'
> >  -cpu = 'native'
> >  +cpu = 'corei7'
> >   endian = 'little'
> >
> > @Ranjit, @Pallavi,
> > Are you building using mingw, and if so are you observing same problem?
> >
> 
> Thanks Ferruh.
> 
> 
> > We usually build using Clang. However, we verify with mingw as well before
> submitting the patch.
> > As mentioned in the patch [1] comments, we replaced #include
> > x86intrin.h with <rte_vect.h> in the file i40e_rxtx_vec_avx2.c And this helped
> fixing an error related to conflicting types for '__m_prefethw' with Clang on
> Windows.
> > I was able to build this patch using Clang as well as mingw.
> > [1] http://patches.dpdk.org/patch/84770/
> >
> > I verified patch fix submitted by Rong, Leyi, it builds successfully with Clang.
> > However, I am getting same error "Error: invalid register for .seh_savexmm"
> using mingw for 'i40e_rxtx_vec_avx512.c' file.
> 
> The patch I sent https://patchwork.dpdk.org/patch/86999/ is not enough.
> I have neither time nor environment to find a fix.
> 
> For now I simply stopped checking mingw builds.
> 
> Will it get fixed?
> 
> 
> --
> David Marchand

Hi,

Send patch https://patchwork.dpdk.org/patch/87349/ to disable avx512 on windows as the workaround.
Pallavi also tested with this patch, and passed the mingw and clang build. Will try to see if has better way to fix.


More information about the dev mailing list