Problem faced while using workqueue in the character driver.
Hi all,
I am working on a character driver for FPGA, in which i am using a blocked read call on workqueue. The read call will be unblocked by the Interrupt from the Fpga to PPC Cpu.
The problem is that if the process is in blocked mode and then an Interrupt occurs the system gives kernel Panic where as it get unblocked and start reading the data but very soon it gets crashed.
Please send me your suggessins regarding the mentioned problem. Thanks in advance
with regard
Misbah
Signature · 2 lines
View this message in context: http://www.nabble.com/Problem-faced-while-using-workqueue-in-the-character-driver.-tf4116327.html#a11705912 Sent from the linuxppc-embedded mailing list archive at Nabble.com.
Hi Misbah,
Quoted 9 lines
I am working on a character driver for FPGA, in which i am using a blocked read call on workqueue. The read call will be unblocked by the Interrupt from the Fpga to PPC Cpu.
The problem is that if the process is in blocked mode and then an Interrupt occurs the system gives kernel Panic where as it get unblocked and start reading the data but very soon it gets crashed.
Please send me your suggessins regarding the mentioned problem.
Er, without seeing the code, its a bit difficult to suggest anything.
Perhaps you are using work-queues incorrectly?
Take a look at:
simple_work_queue.c
In the tar-ball
http://www.ovro.caltech.edu/~dwh/correlator/software/driver_design.tar.gz
Which is described in:
http://www.ovro.caltech.edu/~dwh/correlator/pdf/LNX-723-Hawkins.pdf
There's also a more complex 'COBRA driver' here:
http://www.ovro.caltech.edu/~dwh/correlator/cobra_docs.html
Having an example of a working driver that uses work-queues might help you.
Dave
hi David
Thanks for your reply I really appreciate it from the heart.
The problem is solved now ,Actually I was using a kernel timer in open call (to run for the first time which ever application would open it and deleting the timer for the last exit ) to simulate for an Interrupt in the same driver. There i did mistake in the implimentation in the logic and as a consiquence of which it was crashing the system and not because of the workqueue.
thanks
misbah
Quoted 46 lines · David Hawkins-3 wrote:
Hi Misbah,
Quoted 11 lines
I am working on a character driver for FPGA, in which i am using a blocked
read call on workqueue. The read call will be unblocked by the Interrupt from the Fpga to PPC Cpu.The problem is that if the process is in blocked mode and then an Interrupt
occurs the system gives kernel Panic where as it get unblocked and start reading the data but very soon it gets crashed.Please send me your suggessins regarding the mentioned problem.
Er, without seeing the code, its a bit difficult to suggest anything.
Perhaps you are using work-queues incorrectly?
Take a look at:
simple_work_queue.cIn the tar-ball
http://www.ovro.caltech.edu/~dwh/correlator/software/driver_design.tar.gz
Which is described in:
http://www.ovro.caltech.edu/~dwh/correlator/pdf/LNX-723-Hawkins.pdf
There's also a more complex 'COBRA driver' here:
http://www.ovro.caltech.edu/~dwh/correlator/cobra_docs.html
Having an example of a working driver that uses work-queues might help you.
Dave
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Signature · 2 lines
View this message in context: http://www.nabble.com/Problem-faced-while-using-workqueue-in-the-character-driver.-tf4116327.html#a11737447 Sent from the linuxppc-embedded mailing list archive at Nabble.com.