> -----Original Message-----
> From: Power, Ciara <[email protected]>
> Sent: Tuesday, October 13, 2020 7:05 PM
> To: [email protected]
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; Richardson, Bruce <[email protected]>;
> Ananyev, Konstantin <[email protected]>; Power, Ciara
> <[email protected]>; Maxime Coquelin <[email protected]>; Xia,
> Chenbo <[email protected]>; Wang, Zhihong <[email protected]>
> Subject: [PATCH v5 12/17] net/virtio: add checks for max SIMD bitwidth
> 
> When choosing a vector path to take, an extra condition must be
> satisfied to ensure the max SIMD bitwidth allows for the CPU enabled
> path.
> 
> Cc: Maxime Coquelin <[email protected]>
> Cc: Chenbo Xia <[email protected]>
> Cc: Zhihong Wang <[email protected]>
> 
> Signed-off-by: Ciara Power <[email protected]>
> 
> ---
> v4: Updated enum name.
> v3: Moved max SIMD bitwidth check to configure function with other vec
>     support checks.
> ---
>  drivers/net/virtio/virtio_ethdev.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio/virtio_ethdev.c
> b/drivers/net/virtio/virtio_ethdev.c
> index 0236c756dc..70955e5cc0 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -2313,7 +2313,8 @@ virtio_dev_configure(struct rte_eth_dev *dev)
>               if ((hw->use_vec_rx || hw->use_vec_tx) &&
>                   (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) ||
>                    !vtpci_with_feature(hw, VIRTIO_F_IN_ORDER) ||
> -                  !vtpci_with_feature(hw, VIRTIO_F_VERSION_1))) {
> +                  !vtpci_with_feature(hw, VIRTIO_F_VERSION_1) ||
> +                  rte_get_max_simd_bitwidth() < RTE_SIMD_512)) {
>                       PMD_DRV_LOG(INFO,
>                               "disabled packed ring vectorized path for
> requirements not met");
>                       hw->use_vec_rx = 0;
> @@ -2366,6 +2367,12 @@ virtio_dev_configure(struct rte_eth_dev *dev)
>                                       "disabled split ring vectorized rx for
> offloading enabled");
>                               hw->use_vec_rx = 0;
>                       }
> +
> +                     if (rte_get_max_simd_bitwidth() < RTE_SIMD_128) {
> +                             PMD_DRV_LOG(INFO,
> +                                     "disabled split ring vectorized rx, max 
> SIMD
> bitwidth too low");
> +                             hw->use_vec_rx = 0;
> +                     }
>               }
>       }
> 
> --
> 2.22.0


Reviewed-by: Chenbo Xia <[email protected]>

Reply via email to