> From: Stephen Hemminger [mailto:[email protected]]
> Sent: Saturday, 30 May 2026 00.59
> 
> On Fri, 29 May 2026 22:45:00 +0200
> Morten Brørup <[email protected]> wrote:
> 
> > If you are curious too...
> > Does the compiler still get confused about AVX rte_memcpy (without
> this patch), if applying the rte_memcpy patch?
> > https://patchwork.dpdk.org/project/dpdk/patch/20260521185631.116046-
> [email protected]/
> 
> No still fails.
> 
> This is if __rte_always_inline is defined as just inline as an
> experiment.
> Compiler gets confused in virtio_net because of matching conditions
> doing
> initialization in virtio_net.
> 
> Also, has issue with rte_memcpy.
> 
> ninja: Entering directory `build'
> [2352/3763] Compiling C object
> lib/librte_vhost.a.p/vhost_virtio_net.c.o
> ../lib/vhost/virtio_net.c: In function ‘desc_to_mbuf’:
> ../lib/vhost/virtio_net.c:3025:34: warning: ‘pkts_info’ may be used
> uninitialized [-Wmaybe-uninitialized]
>  3025 |                         pkts_info[slot_idx].nethdr = *hdr;
>       |                                  ^
> ../lib/vhost/virtio_net.c:2915:37: note: ‘pkts_info’ was declared here
>  2915 |         struct async_inflight_info *pkts_info;
>       |                                     ^~~~~~~~~
> [3487/3763] Compiling C object app/dpdk-test.p/test_test_ipsec.c.o
> In file included from /usr/lib/gcc/x86_64-linux-
> gnu/15/include/immintrin.h:43,
>                  from ../lib/eal/x86/include/rte_rtm.h:8,
>                  from ../lib/eal/x86/include/rte_spinlock.h:9,
>                  from ../lib/mempool/rte_mempool.h:44,
>                  from ../lib/mbuf/rte_mbuf.h:39,
>                  from ../app/test/test_ipsec.c:11:
> In function ‘_mm256_loadu_si256’,
>     inlined from ‘rte_mov32’ at
> ../lib/eal/x86/include/rte_memcpy.h:119:9,
>     inlined from ‘rte_mov64’ at
> ../lib/eal/x86/include/rte_memcpy.h:158:2,
>     inlined from ‘rte_mov128’ at
> ../lib/eal/x86/include/rte_memcpy.h:170:2,
>     inlined from ‘rte_memcpy_generic_more_than_64’ at
> ../lib/eal/x86/include/rte_memcpy.h:389:4,
>     inlined from ‘rte_memcpy’ at
> ../lib/eal/x86/include/rte_memcpy.h:715:10,
>     inlined from ‘setup_test_string_tunneled.constprop’ at
> ../app/test/test_ipsec.c:615:3:
> /usr/lib/gcc/x86_64-linux-gnu/15/include/avxintrin.h:873:10: warning:
> array subscript ‘__m256i_u[3]’ is partly outside array bounds of ‘const
> char[108]’ [-Warray-bounds=]
>   873 |   return *__P;
>       |          ^~~~
> ../app/test/test_ipsec.c: In function
> ‘setup_test_string_tunneled.constprop’:
> ../app/test/test_ipsec.c:527:12: note: at offset 96 into object
> ‘null_plain_data’ of size 108
>   527 | const char null_plain_data[] =
>       |            ^~~~~~~~~~~~~~~
> [3763/3763] Linking target app/dpdk-test

Interesting experiment. Thanks for sharing.

Reply via email to