sched: fix bsp getting higher priority than target during bringup

This commit is contained in:
Matheus
2026-06-30 17:35:29 -03:00
parent 37a4cc957d
commit 99701d2fb9
+4 -4
View File
@@ -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)