From 99701d2fb97ef2fa41b5a8b385ee73875ef63735 Mon Sep 17 00:00:00 2001 From: Matheus Date: Tue, 30 Jun 2026 17:35:29 -0300 Subject: [PATCH] sched: fix bsp getting higher priority than target during bringup --- kernel-src/sys/scheduler/queue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel-src/sys/scheduler/queue.c b/kernel-src/sys/scheduler/queue.c index 20d8bf85..d34537ef 100644 --- a/kernel-src/sys/scheduler/queue.c +++ b/kernel-src/sys/scheduler/queue.c @@ -9,14 +9,14 @@ bitmap_t sched_idle_cpu_bitmap; spinlock_t sched_idle_cpu_bitmap_lock; static cpu_t *pick_cpu(thread_t *thread) { - // if the system is still being bootstrapped or it is a single core machine, run it on the BSP - if (arch_smp_get_cpu_count() == 1 || unlikely(arch_smp_cpusawake != arch_smp_get_cpu_count())) - return get_bsp(); - // if the thread targets a specific cpu, then go into that if (thread->cputarget) return thread->cputarget; + // if the system is still being bootstrapped or it is a single core machine, run it on the BSP + if (arch_smp_get_cpu_count() == 1 || unlikely(arch_smp_cpusawake != arch_smp_get_cpu_count())) + return get_bsp(); + // find the closest cpu in the hierarchy that the thread can run immediatelly in cpu_t *closest = NULL; if (thread->last_cpu)