ladybird/Kernel/Interrupts
Tom b02d33bd63 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.
2020-07-09 23:24:55 +02:00
..
APIC.cpp Kernel: Fix some flaws that caused crashes or hangs during boot 2020-07-09 23:24:55 +02:00
APIC.h Kernel: Fix some flaws that caused crashes or hangs during boot 2020-07-09 23:24:55 +02:00
GenericInterruptHandler.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
GenericInterruptHandler.h Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
InterruptManagement.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
InterruptManagement.h Kernel: Simplify scanning BIOS/EBDA and MP parser initialization 2020-05-22 13:36:57 +02:00
IOAPIC.cpp Kernel: Detect APs and boot them into protected mode 2020-06-04 18:15:23 +02:00
IOAPIC.h Kernel: Use TypedMapping for accessing IOAPIC registers 2020-05-23 15:57:48 +02:00
IRQController.h Interrupts: Simplify IRQ disabling & enabling in IRQController(s) 2020-03-24 16:15:33 +01:00
IRQHandler.cpp Kernel: Simplify disable_irq() and enable_irq() methods in IRQHandler 2020-03-24 16:15:33 +01:00
IRQHandler.h Kernel: Use a const reference to RegisterState in IRQ handling 2020-03-19 15:48:00 +01:00
MSIHandler.h Kernel: Change get_sharing_devices_count() in GenericInterruptHandler 2020-02-24 11:27:03 +01:00
PIC.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
PIC.h Interrupts: Simplify IRQ disabling & enabling in IRQController(s) 2020-03-24 16:15:33 +01:00
SharedIRQHandler.cpp Kernel: Abstract IRQ controller handling from Interrupt handlers 2020-03-24 16:15:33 +01:00
SharedIRQHandler.h Kernel: Use a const reference to RegisterState in IRQ handling 2020-03-19 15:48:00 +01:00
SpuriousInterruptHandler.cpp Interrupts: Handle spurious IRQs from eoi() method 2020-03-24 16:15:33 +01:00
SpuriousInterruptHandler.h Kernel: Correct Spurious Interrupt handlers' controller model() method 2020-03-24 16:15:33 +01:00
UnhandledInterruptHandler.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
UnhandledInterruptHandler.h Kernel: Annotate UnhandledInterruptHandler::eoi with [[noreturn]] 2020-05-16 09:51:31 +02:00