note that Event Stream periodically generates wakeup event for WFE,
linux kernel enables it and configures it to 100Hz (10us).
https://developer.arm.com/documentation/102379/0104/The-processor-timers/Event-stream

saeed

On Sat, Jun 20, 2026 at 8:46 PM Wathsala Vithanage
<[email protected]> wrote:
>
>
> On 6/18/26 01:17, Hemant Agrawal wrote:
> > Hi Watshala,
> >       I think WFET is not available on A72 core.
> > Can you update your answer w.r.t Cortex-A72/Arm v8.0 architecture?
>
> WFET is not available on A72. We enabled it in DPDK selectively for this
> reason.
>
> >
> > Regards
> > Hemant
> >
> >
> >> -----Original Message-----
> >> From: Wathsala Vithanage <[email protected]>
> >> Sent: 17 June 2026 17:27
> >> To: Hemant Agrawal <[email protected]>; Morten Brørup
> >> <[email protected]>
> >> Cc: [email protected]; Maxime Leroy <[email protected]>; Gagandeep Singh
> >> <[email protected]>
> >> Subject: Re: ARM v8 rte_power_pause
> >> Importance: High
> >>
> >> Hi Morten and Hemant,
> >>
> >> YIELD is a NOP on non-SMT CPUs, such as Neoverse.
> >>
> >> WFE is universally available on AArch64, but it comes with a caveat: the 
> >> CPU
> >> can remain in a low-power state indefinitely unless an event is triggered. 
> >> That
> >> event can be generated explicitly via SEV/SEVL by a different CPU, or 
> >> implicitly
> >> through address monitoring (LDAXR).
> >>
> >> WFET is the safer variant because it includes a timeout, so explicit or 
> >> implicit
> >> event-register manipulation is not required.
> >>
> >> --wathsala
> >>
> >> On 6/12/26 01:11, Hemant Agrawal wrote:
> >>> Hi Morten,
> >>> On Cortex‑A72 (ARMv8), the only architectural primitives available are
> >> YIELD, WFE, and WFI:
> >>>     YIELD is the only deterministic, low-overhead option (pure CPU relax,
> >> no entry into low-power state)
> >>>     WFE can be used as a low-power idle hint, but it is event-driven and
> >> not time-based (it may return immediately)
> >>>     WFI depends on interrupt wakeup and is therefore not suitable for
> >>> tight latency loops
> >>>
> >>> For ~1 µs latency targets, the practical approach is a hybrid strategy:
> >>>
> >>> Short waits → spin using YIELD
> >>> Slightly longer waits → opportunistically use WFE for power reduction
> >>>
> >>> A simple implementation could look like (not tested):
> >>>
> >>> static inline void rte_armv8_pause(unsigned int iters) {
> >>>     if (iters < 64) {
> >>>             for (unsigned int i = 0; i < iters; i++)
> >>>                     asm volatile("yield");
> >>>     } else {
> >>>             asm volatile("sevl");
> >>>             asm volatile("wfe");
> >>>     }
> >>> }
> >>>
> >>> @Wathsala Vithanage — would appreciate your thoughts, especially if there
> >> are any micro-architectural nuances we should consider.
> >>> Regards,
> >>> Hemant
> >>>
> >>>> -----Original Message-----
> >>>> From: Morten Brørup <[email protected]>
> >>>> Sent: 03 June 2026 17:26
> >>>> To: Wathsala Vithanage <[email protected]>; Hemant Agrawal
> >>>> <[email protected]>; Sachin Saxena (OSS)
> >>>> <[email protected]>
> >>>> Cc: [email protected]; Maxime Leroy <[email protected]>
> >>>> Subject: ARM v8 rte_power_pause
> >>>> Importance: High
> >>>>
> >>>> Hi Wathsala, Hemant and Sachin,
> >>>>
> >>>> Over at the Grout project, we are discussing power management in the
> >>>> context of 100 Gbit/s latency deadlines [1].
> >>>>
> >>>> rte_power_pause() is not implemented for ARM v8 / Cortex-A72.
> >>>> Syscalls such as nanosleep() have too much overhead, and cannot be used.
> >>>>
> >>>> Any suggestions for a power-reducing method to make a CPU core "sleep"
> >> (i.e.
> >>>> do nothing) for durations in the order of 1 microsecond?
> >>>>
> >>>> [1]:
> >>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> >>>>
> >> hu%2F&data=05%7C02%7Chemant.agrawal%40nxp.com%7C06a651571db
> >> 545d47d7a0
> >> 8decc67908e%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639
> >> 172942353
> >> 967617%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYi
> >> OiIwLjAuMD
> >> AwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7
> >> C%7C&s
> >> data=7NCh3%2BS3TAu1sRLYgqGNAaTwqdgwjqhAs2awPixIeEM%3D&reserve
> >> d=0
> >>>> b.com%2FDPDK%2Fgrout%2Fpull%2F624%23issuecomment-
> >>>>
> >> 4602036364&data=05%7C02%7Chemant.agrawal%40nxp.com%7Cdbff5f2e
> >> 8db1406f0c4008dec1671791%7C686ea1d3bc2b4c6fa92cd99c5c301635%7
> >> C0%7C0%7C639160845728472826%7CUnknown%7CTWFpbGZsb3d8eyJFb
> >> XB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTW
> >> FpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=DRpJWjm2yaF3Cnhk0b
> >>>> bFFhmGbKRweOOiWdsWco2NbX0%3D&reserved=0
> >>>>
> >>>> -Morten

Reply via email to