Files
moss-kernel/src/drivers
Matthew Leach e2e7cdaeec timer: use a per-cpu wakeup queue
Currently, a global wakeup queue is used for all CPUs on the system.
This leads to inefficient behavior regarding preemption. When the
scheduler requests a preemption event, it is inserted into a global list
alongside events from all other CPUs.

When processing IRQs, there is no guarantee which CPU will handle the
timer interrupt. If the current CPU processes a preemption event
intended for a different CPU, it must signal the target CPU via an IPI.
This causes a severe bottleneck, as one CPU may end up distributing
preemption events for the entire system.

Fix this by implementing a per-cpu wakeup queue. Preemption events are
now strictly scheduled for the current CPU, ensuring they are handled
locally by the core that scheduled them. This significantly simplifies
the preemption logic and eliminates the need for IPIs to signal
preemption events.
2025-12-28 23:51:51 -08:00
..
2025-11-16 20:15:01 +00:00
2025-12-28 23:51:51 -08:00
2025-11-16 20:15:01 +00:00
2025-11-16 20:15:01 +00:00
2025-11-16 20:15:01 +00:00
2025-12-10 14:37:59 -08:00
2025-12-26 21:45:40 -05:00
2025-12-26 21:45:40 -05:00