[PATCH v3] hash: fix SSE comparison

David Marchand david.marchand at redhat.com
Tue Oct 10 11:50:34 CEST 2023


On Mon, Oct 9, 2023 at 4:33 PM Bruce Richardson
<bruce.richardson at intel.com> wrote:
>
> On Sat, Oct 07, 2023 at 03:36:34PM +0800, Jieqiang Wang wrote:
> > __mm_cmpeq_epi16 returns 0xFFFF if the corresponding 16-bit elements are
> > equal. In original SSE2 implementation for function compare_signatures,
> > it utilizes _mm_movemask_epi8 to create mask from the MSB of each 8-bit
> > element, while we should only care about the MSB of lower 8-bit in each
> > 16-bit element.
> > For example, if the comparison result is all equal, SSE2 path returns
> > 0xFFFF while NEON and default scalar path return 0x5555.
> > Although this bug is not causing any negative effects since the caller
> > function solely examines the trailing zeros of each match mask, we
> > recommend this fix to ensure consistency with NEON and default scalar
> > code behaviors.
> >
> > Fixes: c7d93df552c2 ("hash: use partial-key hashing")
> > Cc: stable at dpdk.org
> >
> > v2:
> > 1. Utilize scalar mask instead of vector mask to save extra loads (Bruce)
> >
> > v3:
> > 1. Fix coding style warnings

Changelog and other notes on a patch should not be in the commitlog
itself, but should go after ---.
https://doc.dpdk.org/guides/contributing/patches.html#creating-patches


> >
> > Signed-off-by: Feifei Wang <feifei.wang2 at arm.com>
> > Signed-off-by: Jieqiang Wang <jieqiang.wang at arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
> Acked-by: Bruce Richardson <bruce.richardson at intel.com>

Applied, thanks Jieqiang and Bruce.


-- 
David Marchand



More information about the stable mailing list