1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-18 00:52:24 +00:00
serenity/Kernel/Arch
Andreas Kling ab5c422a29 Kernel/SMP: Make SMP message queueing work correctly
- Use the receiver's per-CPU entry in the message, instead of the
  sender's. (Using the sender's entry wasn't safe for broadcast
  messages since the same entry ended up on multiple message queues.)

- Retry the CAS until it *succeeds* instead of *fails*. This closes a
  race window, and also ensures a correct return value. The return value
  is used by the caller to decide whether to broadcast an IPI.
  This was the main reason smp=on was so slow. We had CPUs busy-waiting
  until someone else triggered an IPI and moved things along.

- Add a CPU pause hint to the spin loop. :^)
2021-08-09 11:46:31 +02:00
..
PC Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
x86 Kernel/SMP: Make SMP message queueing work correctly 2021-08-09 11:46:31 +02:00