From: "Ira W. Snyder" <iws@ovro.caltech.edu>
To: Timur Tabi <b04825@freescale.com>
Cc: Dan Williams <dan.j.williams@intel.com>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 1/1] fsldma: ignore end of segments interrupt
Date: Thu, 16 Feb 2012 11:46:55 -0800 [thread overview]
Message-ID: <20120216194655.GD9262@ovro.caltech.edu> (raw)
In-Reply-To: <4F3D5A28.4010905@freescale.com>
On Thu, Feb 16, 2012 at 01:34:00PM -0600, Timur Tabi wrote:
> Ira W. Snyder wrote:
> > This leads me to believe that this occurs mostly (but not always)
> > concurrent with the end-of-chain interrupt.
>
> Have you tested this on an 85xx platform?
>
No. I don't have the ability to connect my P2020 up to an FPGA to
recreate the DMA workload that causes this on my 8349EA. I can run the
dmatest module, if you'd like.
> I noticed something odd. You're modifying fsldma_chan_irq(), which is for
> DMA controllers that have per-channel IRQs. 83xx devices don't have
> per-channel IRQs -- all channels on one controller have the same IRQ.
> Looking at the device tree, I see that the IRQs are listed in the channel
> nodes *and* in the controller node. I don't see how we ever use the
> per-controller ISR.
>
fsldma_ctrl_irq() (the per-controller irq handler) just calls through to
fsldma_chan_irq() (the per-channel irq handler).
> I wonder if the shared IRQ is the part of the cause of the interrupts
> you're seeing.
>
My device tree is slightly modified to remove the per-controller
interrupts and interrupt-parent properties. Each individual channel has
identical interrupts and interrupt-parent properties specified.
Someone here suggested that I do that, several years ago. It has been
too long, and I do not remember who. I can reverse it, and use the
per-controller IRQ instead.
> >
> > In the last month, the "unhandled sr" error has occurred on 92 out of
> > 120 boards in production use. The statistics are included below. On some
> > boards, it is much more frequent than on others. All boards have roughly
> > the same workload.
> >
> > Another interesting tidbit from my logs: this only occurs on DMA channel
> > 2 (the are numbered starting at 0, it is the 3rd channel). Here is an
> > example log message:
>
> What happens if you never register that channel? That is, remove this
> node from the device tree:
>
> dma-channel@100 {
> compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
> reg = <0x100 0x80>;
> cell-index = <2>;
> interrupt-parent = <&ipic>;
> interrupts = <71 8>;
> };
>
I can try that. I hunch the problem will move, as the carma-fpga driver
(see drivers/misc/carma/carma-fpga.c) will claim the 4th channel
instead.
Ira
next prev parent reply other threads:[~2012-02-16 19:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-26 20:58 [PATCH 1/1] fsldma: ignore end of segments interrupt Ira W. Snyder
2012-01-31 21:30 ` [PATCH v2] " Ira W. Snyder
2012-02-16 17:50 ` [PATCH 1/1] " Tabi Timur-B04825
2012-02-16 19:00 ` Ira W. Snyder
2012-02-16 19:34 ` Timur Tabi
2012-02-16 19:46 ` Ira W. Snyder [this message]
2012-02-16 19:48 ` Timur Tabi
2012-02-17 0:57 ` Ira W. Snyder
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=20120216194655.GD9262@ovro.caltech.edu \
--to=iws@ovro.caltech.edu \
--cc=b04825@freescale.com \
--cc=dan.j.williams@intel.com \
--cc=linuxppc-dev@lists.ozlabs.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.