On Mon, 2006-06-26 at 22:35 +0200, Pieter Palmers wrote:
because you are not allowed to yield() in an RT
context?
I wish I had been a little more elaborate on my initial mail, as it
would have saved us some time, and communication troubles (on my part
that is). I already spotted the msleep() change in the patch, and I
already tried reverting it. That gives you a nice new panic message,
something like 'BUG: yield()'ing in ...'.
I'm wondering why a patched, but not 'complete preemption' configured
kernel works fine. This change is present in them too, so it probably
has something to do with the msleep() implementation.
Because I suspect that the change to tasklet_unlock_wait() was actually
responsible.
Did you add a printk() yet as I suggested in my last mail?
Once you add a printk to verify that it hangs in the while loop in
tasklet_unlock_wait() I think you have enough information for a bug
report.
Lee