On 19 Apr 2022, at 18:20, Harry van Haaren wrote:
> The code changes here are to handle (1 << i) shifts where 'i' is the
> packet index in the batch, and 1 << 31 is an overflow of the signed '1'.
>
> Fixed by adding ULL suffix to the 1 character, ensuring compiler knows
> the 1 is unsigned (and 32-bits minimum). Undefined Behaviour sanitizer
> is now happy with the shifts at runtime.
Change looks good to me, but should 1UL not be enough, as the destinations are
all 32-bit?
> Suggested-by: Ilya Maximets <[email protected]>
> Signed-off-by: Harry van Haaren <[email protected]>
>
> ---
>
> Thanks Ilya for the detail in the email - reworked as commit message;
> https://mail.openvswitch.org/pipermail/ovs-dev/2022-April/393270.html
>
> ---
> lib/dpif-netdev-avx512.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/lib/dpif-netdev-avx512.c b/lib/dpif-netdev-avx512.c
> index b7131ba3f..fdefee230 100644
> --- a/lib/dpif-netdev-avx512.c
> +++ b/lib/dpif-netdev-avx512.c
> @@ -183,7 +183,7 @@ dp_netdev_input_outer_avx512(struct dp_netdev_pmd_thread
> *pmd,
> * classifed by vector mfex else do a scalar miniflow extract
> * for that packet.
> */
> - bool mfex_hit = !!(mf_mask & (1 << i));
> + bool mfex_hit = !!(mf_mask & (1ULL << i));
>
> /* Check for a partial hardware offload match. */
> if (hwol_enabled) {
> @@ -204,7 +204,7 @@ dp_netdev_input_outer_avx512(struct dp_netdev_pmd_thread
> *pmd,
>
> pkt_meta[i].bytes = dp_packet_size(packet);
> phwol_hits++;
> - hwol_emc_smc_hitmask |= (1 << i);
> + hwol_emc_smc_hitmask |= (1ULL << i);
> continue;
> }
> }
> @@ -227,7 +227,7 @@ dp_netdev_input_outer_avx512(struct dp_netdev_pmd_thread
> *pmd,
> if (f) {
> rules[i] = &f->cr;
> emc_hits++;
> - hwol_emc_smc_hitmask |= (1 << i);
> + hwol_emc_smc_hitmask |= (1ULL << i);
> continue;
> }
> }
> @@ -237,7 +237,7 @@ dp_netdev_input_outer_avx512(struct dp_netdev_pmd_thread
> *pmd,
> if (f) {
> rules[i] = &f->cr;
> smc_hits++;
> - smc_hitmask |= (1 << i);
> + smc_hitmask |= (1ULL << i);
> continue;
> }
> }
> --
> 2.25.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev