On 01/16/2013 05:32 PM, Ivo Sieben wrote: > 2013/1/16 Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>: >> >> Yes.Thank you very much for the explanation :) But I dont see how the >> context switching goes away with your patch.With your patch, when the >> higher priority thread comes in when the lower priority thread is >> running in the critical section,it will see the wait queue empty and >> "continue its execution" without now wanting to enter the critical >> section.So this means it will preempt the lower priority thread because >> it is not waiting on a lock anyway.There is a context switch here right? >> I dont see any problem in scheduling due to this,but I do think your >> patch is essential. >> > > I don't have a problem that there is a context switch to the high > priority process: it has a higher priority, so it probably is more > important. > My problem is that even when the waitqueue is empty, the high priority > thread has a risk to block on the spinlock needlessly (causing context > switches to low priority task and back to the high priority task) > Fair enough Ivo.I think you should go ahead with merging the waitqueue_active() wake_up() logic into the wake_up() variants. Regards Preeti U Murthy -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html