mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:17:46 +00:00
Kernel: Fix some flaws that caused crashes or hangs during boot
We need to halt the BSP briefly until all APs are ready for the first context switch, but we can't hold the same spinlock by all of them while doing so. So, while the APs are waiting on each other they need to release the scheduler lock, and then once signaled re-acquire it. Should solve some timing dependent hangs or crashes, most easily observed using qemu with kvm disabled.
This commit is contained in:
parent
5d9ea2c787
commit
b02d33bd63
4 changed files with 146 additions and 120 deletions
|
@ -96,7 +96,6 @@ private:
|
|||
};
|
||||
|
||||
OwnPtr<Region> m_apic_base;
|
||||
Vector<OwnPtr<Region>> m_apic_ap_stacks;
|
||||
Vector<OwnPtr<Processor>> m_ap_processor_info;
|
||||
Vector<Thread*> m_ap_idle_threads;
|
||||
AK::Atomic<u8> m_apic_ap_count{0};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue