Kernel: Now all active processors are used in scheduling

When a timer reschedule happens, ipi is broadcasted too all
processors for them to perform a reschedule!
This commit is contained in:
2024-03-09 23:53:50 +02:00
parent 89ca4c8a8b
commit e65bc040af
2 changed files with 9 additions and 3 deletions

View File

@@ -310,10 +310,12 @@ done:
else
{
InterruptController::get().eoi(irq);
if (s_interruptables[irq])
s_interruptables[irq]->handle_irq();
if (irq == IRQ_IPI)
Scheduler::get().reschedule();
else if (auto* handler = s_interruptables[irq])
handler->handle_irq();
else
dprintln("no handler for irq 0x{2H}\n", irq);
dprintln("no handler for irq 0x{2H}", irq);
}
Scheduler::get().reschedule_if_idling();