Unaligned memory access when reading ipv6 header
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: [email protected]
Reporter: [email protected]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.
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.