RTEMS | [arm] Implement _CPU_Spin_wait() in cpu.h for SMP spin-loop throttling (#5642)
Wayne Thornton (@wmthornton-dev)
gitlab at rtems.org
Wed Jul 15 18:08:28 UTC 2026
Issue created by Wayne Thornton: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5642
## Description:
We have introduced a new Super Core architecture hook, `_CPU_Spin_wait(),` to mitigate aggressive speculative execution penalties, reduce thermal load, and lower bus contention during SMP spin-wait polling loops. The reference template is currently documented in `cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h` and natively implemented for `x86_64` upon merging of rtems/rtos/rtems!1256.
The arm architecture port needs to override the default fallback by implementing a native inline assembly pipeline throttle in `cpukit/score/cpu/arm/include/rtems/score/cpu.h`.
## Suggested Implementation:
For ARMv7-A / ARMv8-A targets, this should utilize the architectural `yield` instruction (or `wfe` where appropriate for spin-locks) paired with a compiler memory clobber:
```
static inline void _CPU_Spin_wait( void )
{
__asm__ volatile( "yield" ::: "memory" );
}
#define _CPU_Spin_wait _CPU_Spin_wait
```
## Verification:
Validate that the implementation compiles cleanly and passes the standalone SMP spin-wait test suite: `testsuites/smptests/smpspinwait01`. Once defined, the preprocessor will automatically override the temporary test-level fallback in `init.c`.
<!-- Pre-set options
- milestone
-->
--
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5642
You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/4-8wijs381j8inv7wikwn82mv67-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260715/4913885a/attachment.htm>
More information about the bugs
mailing list