> -----Original Message----- > From: David Marchand <david.march...@redhat.com> > Sent: Monday, January 25, 2021 10:35 PM > To: Kadam, Pallavi <pallavi.ka...@intel.com> > Cc: Yigit, Ferruh <ferruh.yi...@intel.com>; Ali Alnubani <alia...@nvidia.com>; > NBU-Contact-Thomas Monjalon <tho...@monjalon.net>; Richardson, Bruce > <bruce.richard...@intel.com>; Tal Shnaiderman <tal...@nvidia.com>; Odi Assli > <o...@nvidia.com>; Rong, Leyi <leyi.r...@intel.com>; Zhang, Qi Z > <qi.z.zh...@intel.com>; Lu, Wenzhuo <wenzhuo...@intel.com>; Xing, Beilei > <beilei.x...@intel.com>; Menon, Ranjit <ranjit.me...@intel.com>; > dev@dpdk.org; Raslan Darawsheh <rasl...@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.ka...@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.