[PATCH v8] event/dlb2: add support for single 512B write of 4 QEs
Jerin Jacob
jerinjacobk at gmail.com
Mon Jun 13 08:30:40 CEST 2022
On Fri, Jun 10, 2022 at 9:58 PM Timothy McDaniel
<timothy.mcdaniel at 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.mcdaniel at intel.com>
> Acked-by: Kent Wires <kent.wires at 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.
More information about the dev
mailing list