* dma hardware underrun
@ 2007-07-22 13:59 treul
2007-07-22 14:53 ` Alan Cox
0 siblings, 1 reply; 2+ messages in thread
From: treul @ 2007-07-22 13:59 UTC (permalink / raw)
To: linux-kernel
Hi all,
I'm currently experiencing a tough DMA underrun problem.
The system is like:
global bus
||
data-compressor ------||------//---- memory
IDE-PCI harddisk -----||
data-decompressor ----||
data-consumer --------||
||
1. harddisk has the compressed data, read to compressed buffer by DMA1;
2. data-decompressor gets data from compressed buffer by DMA2, and puts
decompressed data to decompressed buffers in ISR;
3. data-consumer eats the decompressed data at an uncompromisable speed;
The data-consumer encounters DMA underrun...
My debugging result shows the underrun goes away if I put 2 printf's in the
harddisk ISR. The printf is at milli-seconds whereas the duration of the
original ISR is at lower magnitude. In addition, I find a SATA-PCI harddisk
does not have the underrun problem. IDE-PCI device gets the trouble.
In addition, all interrupts are at the same priority and ISR's can not be
preempted by others.
So, do you have any idea about where the root cause can be hiding? Or what
do you think of adding printf's in ISR? (performance? incurring other
problems by disabling interrupt too long?)
Thanks!!
-treul
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: dma hardware underrun
2007-07-22 13:59 dma hardware underrun treul
@ 2007-07-22 14:53 ` Alan Cox
0 siblings, 0 replies; 2+ messages in thread
From: Alan Cox @ 2007-07-22 14:53 UTC (permalink / raw)
To: treul; +Cc: linux-kernel
> My debugging result shows the underrun goes away if I put 2 printf's in the
> harddisk ISR. The printf is at milli-seconds whereas the duration of the
> original ISR is at lower magnitude. In addition, I find a SATA-PCI harddisk
> does not have the underrun problem. IDE-PCI device gets the trouble.
Is the SATA controller on the motherboard and the PATA one on the PCI
bus ?
> So, do you have any idea about where the root cause can be hiding? Or what
> do you think of adding printf's in ISR? (performance? incurring other
> problems by disabling interrupt too long?
On a standard PCI bus an IDE DMA disk can saturate the bus. That may be
your underlying problem ?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-07-22 14:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-22 13:59 dma hardware underrun treul
2007-07-22 14:53 ` Alan Cox
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.