From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/6] ARM: nmk: update GPIO chained IRQ handler to use EOI in parent chip
Date: Wed, 2 Mar 2011 19:17:44 +0000 [thread overview]
Message-ID: <20110302191744.GA13179@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <alpine.LFD.2.00.1103021015110.2701@localhost6.localdomain6>
On Wed, Mar 02, 2011 at 10:25:02AM +0100, Thomas Gleixner wrote:
> On Wed, 2 Mar 2011, Russell King - ARM Linux wrote:
> > On Tue, Mar 01, 2011 at 10:29:37PM +0100, Thomas Gleixner wrote:
> > > Errm. I did never say that we disable the parent interrupt by any
> > > means except when the chained handler explicitely wants to do that,
> > > which is pretty much pointlesss nowadays, as we run all interrupt
> > > handlers with interrupts disabled.
> >
> > And that's now why some platforms struggle to work, and we're having
> > to bodge around this - like the ARM platforms with MMC support. Like
>
> Whats the problem for MMC?
The FIFO interrupt gets completely buggered by USB interrupts such that
we can't read data fast enough. With the old IRQF_DISABLED system,
the FIFO interrupt was marked IRQF_DISABLED as it was *fast* and needed
not to be interrupted. Other interrupts didn't have IRQF_DISABLED set.
That means such interrupts can be handled while other longer interrupts
are in progress. All that's gone out of the window now that all IRQ
handlers are run with IRQs permanently disabled.
And when this kind of behaviour becomes system specific (eg, the USB
device driver doesn't have this problem on x86 so why should it change)
then it all becomes impossible. There's hardware modifications in
progress to add deeper FIFOs (which need to be extended to something
idiotic like 512 32-bit words to work around the problem) and adaptive
clocking schemes which retry transfers at slower clock rates in the hope
that the IRQ handler can keep up.
It's a complete mess.
Another example - a platform I've worked on requires tight timings from
I2C in order for the CPU not to be spontaneously rebooted. A timeout
on I2C will cause this. We managed to get this platform to work reliably
by using IRQF_DISABLED and having the standard behaviour (IRQs enabled
during other interrupts). Now - god knows if it'll work reliably anymore,
my guess is that with latest kernels it'll be impossibly unreliable.
> > some other platforms where having IRQs disabled during IDE prevents
> > interrupts being recevied for long periods of time (longer than the
> > 100Hz tick period).
>
> That was discussed to death already and the general agreement was that
> those handlers should either enable interrupts themself, when it's
> required, or being converted to threaded handlers. An interrupt
> handler or any other code section which runs more than 10ms with
> interrupts disabled is a bug by definition.
I haven't noticed PATA getting this support. So how do platforms force
device drivers which turn out to be problematical to conform to their
timing issues when there wasn't a problem with previous kernels?
> > I *violently* disagree with the direction that genirq is heading. It's
> > *actively* breaking stuff. What's really annoying is that problems like
> > the above I did point out, but you seem happy to completely ignore them.
> > The result is that more and more ARM platforms *are* becoming utterly
> > useless, or requiring additional complexity being shoved into subsystems
> > to cope with this crap.
> >
> > What we need is a *decent* IRQ support system. Not something created out
> > of religious arguments which is what we have now.
>
> I'm not religious about it, at least not more than you with your total
> refusement to distinguish between special case oddball FPGA demux and
> bog standard functional irq chips.
Clearly you don't want to know about the problems all this stuff is
causing. Maybe you like being responsible for breaking the most ARM
platforms with your changes - are you trying for an entry in the
Guiness Book of World Records for this, because I think that's where
you're heading.
I don't agree with the distinction that you're trying to make. It only
works for a simple subset of cases - but it seems you're overall attitude
is that you only care about a small subset of easy cases and to hell
with everything else.
next prev parent reply other threads:[~2011-03-02 19:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 13:33 [PATCH v2 0/6] Migrate GIC to fasteoi flow control Will Deacon
2011-02-28 13:33 ` [PATCH 1/6] ARM: gic: use handle_fasteoi_irq for SPIs Will Deacon
2011-02-28 13:33 ` [PATCH 2/6] ARM: omap: update GPIO chained IRQ handler to use EOI in parent chip Will Deacon
2011-02-28 13:33 ` [PATCH 3/6] ARM: tegra: " Will Deacon
2011-03-01 13:11 ` Sergei Shtylyov
2011-03-01 13:24 ` Will Deacon
2011-02-28 13:33 ` [PATCH 4/6] ARM: s5pv310: update IRQ combiner " Will Deacon
2011-03-01 13:12 ` Sergei Shtylyov
2011-02-28 13:33 ` [PATCH 5/6] ARM: msm: update GPIO chained IRQ handler " Will Deacon
2011-02-28 13:33 ` [PATCH 6/6] ARM: nmk: " Will Deacon
2011-02-28 14:03 ` Russell King - ARM Linux
2011-02-28 18:09 ` Will Deacon
2011-02-28 19:16 ` Thomas Gleixner
2011-02-28 21:44 ` Russell King - ARM Linux
2011-03-01 10:57 ` Thomas Gleixner
2011-03-01 20:19 ` Russell King - ARM Linux
2011-03-01 21:29 ` Thomas Gleixner
2011-03-01 23:14 ` Russell King - ARM Linux
2011-03-01 23:44 ` Thomas Gleixner
2011-03-01 23:50 ` Russell King - ARM Linux
2011-03-02 8:53 ` Russell King - ARM Linux
2011-03-02 9:25 ` Thomas Gleixner
2011-03-02 19:17 ` Russell King - ARM Linux [this message]
2011-03-02 20:44 ` Thomas Gleixner
2011-03-02 15:33 ` Will Deacon
2011-03-02 17:10 ` Thomas Gleixner
2011-03-04 11:47 ` Will Deacon
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=20110302191744.GA13179@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).