Attached is an updated patch that addresses Michael Ellerman's comments. One comment made by Michael has not yet been addressed: The comment was in regard to the for-loop in spufs/sched.c:notify_spus_active(). He wondered if the scheduler can swap a context from one node to another. If so, there's a small window in this loop (where we switch the lock from one node's active list to the next) where it may be possible we might miss waking up a context and send a spurious wakeup to another. Arnd . . . can you comment on this question? Thanks. -Maynard