20/09/2022 14:09, Mattias Rönnblom: > On 2022-07-11 15:25, Olivier Matz wrote: > > On Mon, Jul 11, 2022 at 02:11:32PM +0200, Mattias Rönnblom wrote: > >> __rte_raw_cksum() (used by rte_raw_cksum() among others) accessed its > >> data through an uint16_t pointer, which allowed the compiler to assume > >> the data was 16-bit aligned. This in turn would, with certain > >> architectures and compiler flag combinations, result in code with SIMD > >> load or store instructions with restrictions on data alignment. > >> > >> This patch keeps the old algorithm, but data is read using memcpy() > >> instead of direct pointer access, forcing the compiler to always > >> generate code that handles unaligned input. The __may_alias__ GCC > >> attribute is no longer needed. > >> > >> The data on which the Internet checksum functions operates are almost > >> always 16-bit aligned, but there are exceptions. In particular, the > >> PDCP protocol header may (literally) have an odd size. > >> > >> Performance impact seems to range from none to a very slight > >> regression. > >> > >> Bugzilla ID: 1035 > >> Cc: sta...@dpdk.org > > > > Fixes: 6006818cfb26 ("net: new checksum functions") > > > >> --- > >> > >> v3: > >> * Use RTE_ALIGN_FLOOR() in the pointer arithmetic (Olivier Matz). > >> v2: > >> * Simplified the odd-length conditional (Morten Brørup). > >> > >> Reviewed-by: Morten Brørup <m...@smartsharesystems.com> > >> > >> Signed-off-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com> > > > > Acked-by: Olivier Matz <olivier.m...@6wind.com> > > > > Thank you! > > Are there any plans to merge this patchset?
Applied, thanks. Sorry for the delay.