diff options
author | Tom <tomut@yahoo.com> | 2020-07-06 07:27:22 -0600 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-07-06 17:07:44 +0200 |
commit | bc107d0b3311677de7bc084cbb75c21b166c8ad5 (patch) | |
tree | 586d1cfa189d72309f978122e15d112539feef61 /Kernel/Thread.cpp | |
parent | dec27e5e6fad25fedd9203087b8107242369dd2b (diff) | |
download | serenity-bc107d0b3311677de7bc084cbb75c21b166c8ad5.zip |
Kernel: Add SMP IPI support
We can now properly initialize all processors without
crashing by sending SMP IPI messages to synchronize memory
between processors.
We now initialize the APs once we have the scheduler running.
This is so that we can process IPI messages from the other
cores.
Also rework interrupt handling a bit so that it's more of a
1:1 mapping. We need to allocate non-sharable interrupts for
IPIs.
This also fixes the occasional hang/crash because all
CPUs now synchronize memory with each other.
Diffstat (limited to 'Kernel/Thread.cpp')
-rw-r--r-- | Kernel/Thread.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 2cbe53f3a4..b1af42a54d 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -196,7 +196,7 @@ void Thread::die_if_needed() // actual context switch u32 prev_flags; Processor::current().clear_critical(prev_flags, false); - +dbg() << "die_if_needed returned form clear_critical!!! in irq: " << Processor::current().in_irq(); // We should never get here, but the scoped scheduler lock // will be released by Scheduler::context_switch again ASSERT_NOT_REACHED(); |