
please do not top post!
Ok.
correcting that mistake for you for this time
Thanks so much.
User thread which invokes the writei function which in turn invokes a kernel function which waits for the free buffer to write the audio data. This kernel function adds this thread to a wake(sleep) queue and calls a schedule_timeout (msecs_to_jiffies(10000)).
actually it doesn't... you must be on some really really old kernel or something.
Sorry, I have not provided the kernel version. Kernel version is 2.6.35.
Please always test bugs like this with a recent kernel. 2.6.35 is pretty much 6 versions (and 18 months) behind and at that point you really have to test with something newer first before asking others to help you and spend their time on your problem.
Unfortunately, I am stuck with that version as the product that I work on is on that version.
Will you provide some hint on how to go about identifying the root cause?
I manually ported the changes and verified. I still see the issue. Found more information which might throw more light into the problem. p->state in try_to_wake_up() is 0 when it is expected to be 2 or 3.
However, wait_for_avail() does not have the code similar to the one provided in the patch below.
the patch is against a recent kernel; no surprise that the code has changed in the last 18 months....
-- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org