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

David Marchand david.marchand at redhat.com
Mon Jan 25 15:35:06 CET 2021


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



More information about the dev mailing list