Re: [dpdk-dev] Use WFE for spinlock and ring
From: Ruifeng Wang <hidden>
Date: 2021-04-29 14:28:30
-----Original Message----- From: Thomas Monjalon <redacted> Sent: Wednesday, April 28, 2021 7:14 PM To: Ruifeng Wang <redacted> Cc: David Marchand <redacted>; dev <redacted>; jerinj@marvell.com; nd [off-list ref]; Honnappa Nagarahalli [off-list ref] Subject: Re: Use WFE for spinlock and ring 28/04/2021 11:30, Ruifeng Wang:quoted
From: David Marchand <redacted>quoted
On Sun, Apr 25, 2021 at 7:57 AM Ruifeng Wang [off-list ref] wrote:quoted
The rte_wait_until_equal_xxx APIs abstract the functionality of 'polling for a memory location to become equal to a given value'[1]. Use the API for the rte spinlock and ring implementations. With the wait until equal APIs being stable, changes will not impact ABI.Afaics, there is no ARM target with WFE enabled and we lost ability to enable WFE support with removal of the make build system.WFE can be enabled with direct meson file change. WFE is not intended to be enabled by default. It can be enabled based on benchmarking result on hardware.quoted
$ git grep RTE_ARM_USE_WFE config/arm/meson.build: ['RTE_ARM_USE_WFE', false], lib/eal/arm/include/rte_pause_64.h:#ifdef RTE_ARM_USE_WFE How did you enable WFE to test this series?I modified meson file to test. Tests were also done with WFE disabled to make sure no degradation withgeneric implementation. I don't understand the usage. Which platform should use it?
Platforms that implement WFE semantic (e.g. N1) can use. The user can enable this feature for power efficiency purpose. But there is something to note as described in commit message 1be7855d77 when the API was introduced.
Should it be a compile-time option?
Yes, it should be a compile-time option. It can be configured via c_args meson option?