Skip to main content

scheduler_frame_guard_enter

Function scheduler_frame_guard_enter 

Source
pub fn scheduler_frame_guard_enter(
    __arg0: RuntimeScheduleOrigin,
    __arg1: RuntimeSchedulerEntry,
) -> RuntimeSchedulerFrameEnterResult
Expand description

Enters the current CPU’s exact scheduler switch phase.

The runtime validates entry, disables hardware IRQs, and atomically creates one CPU-local baton. For RuntimeSchedulerEntry::PreemptExit and RuntimeSchedulerEntry::IrqReturn, it must transform the exact final lock-preemption depth into the scheduler depth. For RuntimeSchedulerEntry::IrqGuardExit, it must instead transform the final task-context IRQ-publication depth. Neither path may expose a fully preemptible intermediate state. The runtime must not save this phase in an execution context or migrate ordinary IRQ tokens with tasks. RuntimeSchedulerEntry::IrqReturnContinuation must reproduce Linux’s IRQ-return pass boundary: establish one preemption depth, enable local IRQs without a live scheduler baton, disable them again, then convert that exact depth into the next scheduler baton. A successful result must carry a non-empty task-system capability; a rejected entry returns the unsafe-context sentinel without live capabilities.