Skip to contentSkip to conversation

Problem faced while using workqueue in the character driver.

DISCUSSION Misbah khan 2 participants 3 messages Jul 20, 2007 – Jul 23, 2007

lore
Share & tools
lore
#0 lore raw

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.
#1 lore raw

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

#2 lore raw

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.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
_______________________________________________
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.