From 231ecae98b9c129e7a29be7de3d104dcc255ac5a Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 17 Mar 2026 20:23:21 -0400 Subject: [PATCH] kernel/scheduler: Skip setting invoke_scheduler in scheduler_reschedule_ici. It isn't needed now that it's set before sending the ICI. Saves a lot (hundreds, in some basic testing of compile jobs) of unnecessary scheduler invocations. --- src/system/kernel/scheduler/scheduler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/scheduler/scheduler.cpp b/src/system/kernel/scheduler/scheduler.cpp index 036e06075a..7f80b84558 100644 --- a/src/system/kernel/scheduler/scheduler.cpp +++ b/src/system/kernel/scheduler/scheduler.cpp @@ -223,8 +223,8 @@ void scheduler_reschedule_ici() { // This function is called as a result of an incoming ICI. - // Make sure the reschedule() is invoked. - get_cpu_struct()->invoke_scheduler = true; + // Since invoke_scheduler will have been set by whatever sent the ICI, we + // shouldn't set it here (as the scheduler may have already cleared it.) }