I checked the default build, as expected no breakage.
But this no more is about the default dpdk build, but a potential gcc bug lets 
ignore the default gcc build and use DPDK source as a test.

To enable a non portable build you would have to use the rte_machine
DBE_BUILD_OPTION in dpdk.

$ DEB_BUILD_OPTIONS="parallel=8 rte_machine=native" sbuild --purge=never
-Adbionic-amd64 dpdk_18.08-1~ubuntu0.18.04.5.dsc

Further is you don't have the very latest skylake you'd also need to modify a 
build file to set this march still.
  => mk/machine/native/rte.vars.mk

Replace -march=native with -march=skylake-avx512


Then check the built testpmd program from the static build tree (to have all in 
one object):
$ objdump -dM intel 
/build/dpdk-9ZbA0X/dpdk-18.08/debian/build/static-root/build/app/test-pmd/testpmd
 >  /tmp/testpmd.objdump
grep -e 'vmovdqu' /tmp/testpmd.objdump | grep -e '\[rax.*0x[2468]\]' | 
pastebinit

-march=skylake-avx512 -mno-avx512f
=> http://paste.ubuntu.com/p/nGrfJgffbk/
-march=skylake-avx512
=> http://paste.ubuntu.com/p/zhbhFRqVjF/

I do not see the same error sequence as reported in
https://bugs.dpdk.org/show_bug.cgi?id=97#c39


Could it be that:
gdb -batch -ex 'file 
/build/dpdk-9ZbA0X/dpdk-18.08/debian/build/static-root/build/app/test-pmd/testpmd'
 -ex 'set disassembly-flavor intel' -ex 'disassemble/rs 
mlx5_tx_descriptor_status'  | less
/build/dpdk-9ZbA0X/dpdk-18.08/debian/build/static-root/include/rte_memcpy.h:
427                             dst = (uint8_t *)dst + 128;
   0x000000000045a1d7 <+2311>:  48 83 ea 80     sub    rdx,0xffffffffffffff80

/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:
921       return *__P;
   0x000000000045a1db <+2315>:  62 f1 fe 28 6f 04 c5 01 00 00 00        
vmovdqu64 ymm0,YMMWORD PTR [rax*8+0x1]

922     }
923     
924     extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
925     _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
926     {
927       *__P = __A;
   0x000000000045a1e6 <+2326>:  62 f1 fe 28 7f 42 fd    vmovdqu64 YMMWORD PTR 
[rdx-0x60],ymm0

921       return *__P;
   0x000000000045a1ed <+2333>:  62 f1 fe 28 6f 04 c5 02 00 00 00        
vmovdqu64 ymm0,YMMWORD PTR [rax*8+0x2]

922     }
923     
924     extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
925     _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
926     {
927       *__P = __A;
   0x000000000045a1f8 <+2344>:  62 f1 fe 28 7f 42 fe    vmovdqu64 YMMWORD PTR 
[rdx-0x40],ymm0

921       return *__P;
   0x000000000045a1ff <+2351>:  62 f1 fe 28 6f 04 c5 03 00 00 00        
vmovdqu64 ymm0,YMMWORD PTR [rax*8+0x3]

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1799397

Title:
  [dpdk]rte_memcpy() moves data incorrectly on Ubuntu 18.04 on    Intel
  Skylake.

To manage notifications about this bug go to:
https://bugs.launchpad.net/dpdk/+bug/1799397/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to