On Fri, Jun 10, 2022 at 9:58 PM Timothy McDaniel
<timothy.mcdan...@intel.com> wrote:
>
> On Xeon, 512b accesses are available, so movdir64 instruction is able to
> perform 512b read and write to DLB producer port. In order for movdir64
> to be able to pull its data from store buffers (store-buffer-forwarding)
> (before actual write), data should be in single 512b write format.
> This commit add change when code is built for Xeon with 512b AVX support
> to make single 512b write of all 4 QEs instead of 4x64b writes.
>
> Signed-off-by: Timothy McDaniel <timothy.mcdan...@intel.com>
> Acked-by: Kent Wires <kent.wi...@intel.com>


@McDaniel, Timothy
Some cosmetic comments are below. Good to merge the next version.
@Richardson, Bruce Hope you are OK with this version patch.



> +#ifdef CC_AVX512_SUPPORT

I think,  We can avoid putting it under CC_AVX512_SUPPORT to avoid clutter.

> +       if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512VL) &&
> +           rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512)
> +               ev_port->qm_port.use_avx512 = true;
> +       else
> +               ev_port->qm_port.use_avx512 = false;
> +#endif
>         return 0;
>  }
>
> @@ -2457,21 +2464,6 @@ dlb2_eventdev_start(struct rte_eventdev *dev)
>         return 0;
>  }
>
> diff --git a/drivers/event/dlb2/dlb2_avx512.c 
> b/drivers/event/dlb2/dlb2_avx512.c
> new file mode 100644
> index 0000000000..ce2d006006
> --- /dev/null
> +++ b/drivers/event/dlb2/dlb2_avx512.c
> @@ -0,0 +1,267 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2016-2020 Intel Corporation

Fix copyright year.

> + */
> +
> diff --git a/drivers/event/dlb2/dlb2_priv.h b/drivers/event/dlb2/dlb2_priv.h
> index 4a06d649ab..e8d2d0c656 100644
> --- a/drivers/event/dlb2/dlb2_priv.h
> +++ b/drivers/event/dlb2/dlb2_priv.h
> @@ -377,6 +377,9 @@ struct dlb2_port {
>         struct dlb2_eventdev_port *ev_port; /* back ptr */
>         bool use_scalar; /* force usage of scalar code */
>         uint16_t hw_credit_quanta;

> +#ifdef CC_AVX512_SUPPORT

Not really need to be under compile time to avoid the compile-time clutter.

> +       bool use_avx512;
> +#endif
>  };
>
> diff --git a/drivers/event/dlb2/dlb2_sse.c b/drivers/event/dlb2/dlb2_sse.c
> new file mode 100644
> index 0000000000..82f6588e2a
> --- /dev/null
> +++ b/drivers/event/dlb2/dlb2_sse.c
> @@ -0,0 +1,219 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2016-2020 Intel Corporation

Fix copyright year.

> diff --git a/drivers/event/dlb2/dlb2_sve.c b/drivers/event/dlb2/dlb2_sve.c
> new file mode 100644
> index 0000000000..82f6588e2a
> --- /dev/null
> +++ b/drivers/event/dlb2/dlb2_sve.c
> @@ -0,0 +1,219 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2016-2020 Intel Corporation

Fix copyright year.

Reply via email to