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.