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

Reply via email to