[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