https://bugs.dpdk.org/show_bug.cgi?id=279
Bug ID: 279 Summary: Unaligned memory access when reading ipv6 header Product: DPDK Version: 19.02 Hardware: x86 OS: Linux Status: CONFIRMED Severity: normal Priority: Normal Component: examples Assignee: dev@dpdk.org Reporter: mplan...@os.inf.tu-dresden.de Target Milestone: --- Hello, I'm running l3fwd application in a following way: sudo ./build/l3fwd -l 2-3 -n 2 --vdev=net_tap0 --vdev=net_tap1 --vdev=net_tap2 -- -p 0xe -E --parse-ptype --config="(1,0,3),(2,0,3)" And it fails with following output: EAL: Detected 4 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:00:1f.6 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:15d8 net_e1000_em soft parse-ptype is enabled Skipping disabled port 0 Initializing port 1 ... Creating queues: nb_rxq=1 nb_txq=2... Address:AE:00:CE:7A:B1:50, Destination:02:00:00:00:00:01, Allocated mbuf pool on socket 0 Hash: Adding 0x4 keys txq=2,0,0 txq=3,1,0 Initializing port 2 ... Creating queues: nb_rxq=1 nb_txq=2... Address:F6:CE:D9:39:29:D2, Destination:02:00:00:00:00:02, txq=2,0,0 txq=3,1,0 Initializing port 3 ... Creating queues: nb_rxq=0 nb_txq=2... Address:92:18:9B:13:E1:EF, Destination:02:00:00:00:00:03, txq=2,0,0 txq=3,1,0 Initializing rx queues on lcore 2 ... Initializing rx queues on lcore 3 ... rxq=1,0,0 rxq=2,0,0 Port 1: softly parse packet type info Port 2: softly parse packet type info Checking link statusdone Port1 Link Up. Speed 10000 Mbps -full-duplex Port2 Link Up. Speed 10000 Mbps -full-duplex Port3 Link Up. Speed 10000 Mbps -full-duplex L3FWD: entering main loop on lcore 3 L3FWD: -- lcoreid=3 portid=1 rxqueueid=0 L3FWD: -- lcoreid=3 portid=2 rxqueueid=0 L3FWD: lcore 2 has nothing to do [1] 13769 segmentation fault sudo ./build/l3fwd -l 2-3 -n 2 --vdev=net_tap0 --vdev=net_tap1 --vdev=net_tap In the debugger I see that the reason point to unaligned memory access in following instruction: 0x5555555de474 <em_get_ipv6_dst_port+12> vmovdqa 0x14(%rdi),%xmm2 Where p/x $rdi + 0x14 $3 = 0x100694162 The instruction point to following line of function em_get_ipv6_dst_port: key.xmm[1] = *(xmm_t *)data1; I compiled DPDK with following command: make -j4 install EXTRA_CFLAGS="-ggdb3 -O0" T=x86_64-native-linuxapp-gcc DESTDIR=$(pwd)/../dpdk-install prefix= And used the same CFLAGS for l3fwd System information $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 142 Model name: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz Stepping: 9 CPU MHz: 915.480 CPU max MHz: 3100.0000 CPU min MHz: 400.0000 BogoMIPS: 5424.00 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp $ gcc --version gcc (Debian 8.2.0-14) 8.2.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- You are receiving this mail because: You are the assignee for the bug.