On Tue, 23 Jul 2019 23:43:46 +0800 Gavin Hu <gavin...@arm.com> wrote:
> Add the RTE_USE_WFE configuration entry for aarch64, disabled by default. > It can be enabled selectively based on the performance benchmarking. > > Signed-off-by: Gavin Hu <gavin...@arm.com> > Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> > Reviewed-by: Steve Capper <steve.cap...@arm.com> > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > Acked-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > --- > config/arm/meson.build | 1 + > config/common_armv8a_linux | 6 ++++++ > 2 files changed, 7 insertions(+) > > diff --git a/config/arm/meson.build b/config/arm/meson.build > index 979018e..496813a 100644 > --- a/config/arm/meson.build > +++ b/config/arm/meson.build > @@ -116,6 +116,7 @@ impl_dpaa = ['NXP DPAA', flags_dpaa, machine_args_generic] > impl_dpaa2 = ['NXP DPAA2', flags_dpaa2, machine_args_generic] > > dpdk_conf.set('RTE_FORCE_INTRINSICS', 1) > +dpdk_conf.set('RTE_USE_WFE', 0) > > if not dpdk_conf.get('RTE_ARCH_64') > dpdk_conf.set('RTE_CACHE_LINE_SIZE', 64) > diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux > index 481712e..48c7ab5 100644 > --- a/config/common_armv8a_linux > +++ b/config/common_armv8a_linux > @@ -12,6 +12,12 @@ CONFIG_RTE_ARCH_64=y > > CONFIG_RTE_FORCE_INTRINSICS=y > > +# Use WFE instructions to implement the rte_wait_for_equal_xxx APIs, > +# calling these APIs put the cores enter low power state while waiting > +# for the memory address to be become equal to the expected value. > +# This is supported only by aarch64. > +CONFIG_RTE_USE_WFE=n > + > # Maximum available cache line size in arm64 implementations. > # Setting to maximum available cache line size in generic config > # to address minimum DMA alignment across all arm64 implementations. Introducing config options is a maintenance nightmare. How are distributions supposed to ship a package? Does full regression test get done on both options? The user should not be able to change this.