I was actually looking at the following phrase in the article: "Code holding spinlocks also cannot be preempted; doing so would cause serious latencies (at best) or deadlocks." Am I confused?
Posted Aug 5, 2009 22:17 UTC (Wed) by tertium (subscriber, #56169)
[Link]
Indeed, it seems I am: "code holding a spinlock" != "code spinning". My apologies.
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.
The realtime preemption endgame
Posted Aug 5, 2009 22:47 UTC (Wed) by PaulMcKenney (subscriber, #9624)
[Link]