All of lore.kernel.org
 help / color / mirror / Atom feed
From: "treul" <lgijnpuhx@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: dma hardware underrun
Date: Sun, 22 Jul 2007 21:59:44 +0800	[thread overview]
Message-ID: <f7vnsh$aun$1@sea.gmane.org> (raw)

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




             reply	other threads:[~2007-07-22 14:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-22 13:59 treul [this message]
2007-07-22 14:53 ` dma hardware underrun Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='f7vnsh$aun$1@sea.gmane.org' \
    --to=lgijnpuhx@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.