diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index bc19e2cec..fd8b6e36a 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -33,7 +33,7 @@ use ostd::{ arch::qemu::{exit_qemu, QemuExitCode}, boot, - cpu::PinCurrentCpu, + cpu::{CpuId, CpuSet, PinCurrentCpu}, }; use process::Process; @@ -81,8 +81,11 @@ pub fn main() { ostd::boot::smp::register_ap_entry(ap_init); // Spawn the first kernel thread on BSP. + let mut affinity = CpuSet::new_empty(); + affinity.add(CpuId::bsp()); ThreadOptions::new(init_thread) .priority(Priority::idle()) + .cpu_affinity(affinity) .spawn(); }