-----Original Message----- From: Burakov, Anatoly Sent: Thursday, July 25, 2019 3:01 PM To: Aaron Conole <[email protected]>; Govindharajan, Hariprasad <[email protected]> Cc: Remy Horton <[email protected]>; Kovacevic, Marko <[email protected]>; Ori Kam <[email protected]>; Richardson, Bruce <[email protected]>; De Lara Guarch, Pablo <[email protected]>; Nicolau, Radu <[email protected]>; Akhil Goyal <[email protected]>; Kantecki, Tomasz <[email protected]>; [email protected]; [email protected] Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: fix unaligned memory access
On 25-Jul-19 2:27 PM, Aaron Conole wrote: > hgovindh <[email protected]> writes: > >> Fix unaligned memory access when reading IPv6 header which leads to >> segmentation fault by changing aligned memory read to unaligned >> memory read. >> >> Bugzilla ID: 279 >> Fixes: 64d3955de1de ("examples/l3fwd: fix ARM build") >> Cc: [email protected] >> Cc: [email protected] >> Signed-off-by: hgovindh <[email protected]> >> --- >> examples/l3fwd/l3fwd_em.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c >> index fa8f82be6..f0c443dae 100644 >> --- a/examples/l3fwd/l3fwd_em.c >> +++ b/examples/l3fwd/l3fwd_em.c >> @@ -285,7 +285,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, >> void *lookup_struct) >> * Get part of 5 tuple: dst IP address lower 96 bits >> * and src IP address higher 32 bits. >> */ >> - key.xmm[1] = *(xmm_t *)data1; >> + key.xmm[1] = _mm_loadu_si128((xmm_t *)data1); > > Nak. Please use a generic unaligned load, rather than an intel > specific one. Otherwise, supported platforms like arm64 will have broken > builds. > > Additionally, which chip and compiler did you use to get this error? I have reproduced this error on Intel Xeon E5-2699 and GCC 7.4 (Ubuntu 18.04). I have reproduced this error on Intel(R) Xeon(R) CPU and GCC 8.3.0 (Ubuntu 16.04). > >> >> /* >> * Get part of 5 tuple: dst port and src port > -- Thanks, G Hariprasad

