The realtime preemption endgame
The realtime preemption endgame
Posted Aug 5, 2009 21:21 UTC (Wed) by tertium (guest, #56169)In reply to: The realtime preemption endgame by PaulMcKenney
Parent article: The realtime preemption endgame
1. High-priority task A takes a mutex and runs for some time without going to sleep.
2. Low-priority task B tries to take the mutex and spins, since A is running. This is where we lose latency, because...
3. ...while B spins, it can't be preempted, so a medium-priority task C can't run on either of CPUs, even if there is some work for it.
I presume, I'm missing something obvious and would be glad to know what it is.
Posted Aug 5, 2009 21:24 UTC (Wed)
by PaulMcKenney (✭ supporter ✭, #9624)
[Link] (3 responses)
Posted Aug 5, 2009 21:43 UTC (Wed)
by tertium (guest, #56169)
[Link] (2 responses)
Posted Aug 5, 2009 22:17 UTC (Wed)
by tertium (guest, #56169)
[Link] (1 responses)
By the way, in your scenario (if I'm not off the mark again) at the step 5, the task A wouldn't spin, since B isn't running. Instead, A would block immediately, awakening B and taking the lock.
Posted Aug 5, 2009 22:47 UTC (Wed)
by PaulMcKenney (✭ supporter ✭, #9624)
[Link]
Posted Aug 7, 2009 15:49 UTC (Fri)
by dvhart (guest, #19636)
[Link]
The realtime preemption endgame
The realtime preemption endgame
The realtime preemption endgame
The realtime preemption endgame
The realtime preemption endgame
