On Wed, 16 Oct 2024, Ankur Arora wrote: > > The other core will wake our core up by sending an IPI. The IPI will > > invoke a scheduler function on our core and the WFE will continue. > > Why? The target core is not sleeping. It is *polling* on a memory > address (on arm64, via LDXR; WFE). Ergo an IPI is not needed to tell > it that a need-resched bit is set. The IPI is sent to interrupt the process that is not sleeping. This is done so the busy processor can reschedule the currently running process and respond to the event. It does not matter if the core is "sleeping" or not.