Hello... > I think BH are not executed in process context, they are executed Maybe I am not clear. What I refered by bottom half is the general mechanism of deferred procedure. So, in this sense, workqueue can be classified as bottom half. And since workqueue is executed by keventd/events kernel thread, this means it works on process context. I hope I clear out the confusion.... > > I dont think, kernel preemption have any role here. When kernel > preemption is not enabled and we are in kernel mode (las in your case > P2 looping on spinloop), after serving any interrupts, we will again > be put back to that busy loop only, so P2 will keep on looping till > the spinlock is not release by P1, it does not matter even if the > quantum of P2 has been expired. I have corrected my statement as I did in my second post on this thread. Grabbing spin lock does disable kernel level preemption ;) And correct, spin lock should be held and then released as fast as possible. regards Mulyadi -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/