From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@osdl.org>,
Christoph Hellwig <hch@infradead.org>,
linux-arm-kernel@lists.arm.linux.org.uk,
Paul Mackerras <paulus@samba.org>
Subject: Re: [patch 00/50] genirq: -V3
Date: Thu, 18 May 2006 19:33:37 +1000 [thread overview]
Message-ID: <1147944818.5192.7.camel@localhost.localdomain> (raw)
In-Reply-To: <20060518073853.GA27687@flint.arm.linux.org.uk>
Hi Russell !
> That is incredibly wasteful for level interrupts - what you're suggesting
> means that to service a level interrupt, you take an interrupt exception,
> start processing it, take another interrupt exception, disable the source,
> return from that interrupt and continue to service it. No thanks.
Oh no, that's not what I mean... I've come to agree with having several
flow handlers and thus the level flow handler would mask & ack, then
handle, then unmask is it should be for a level interrupt... What I
meant is that disable_irq could do soft-disable in all cases like it
seems to happen right now in the ARM code but not in Thomas patch.
> I thought you were the one concerned about interrupt handling overhead
> (about the overhead introduced by function pointer calls.) but that
> idea _far_ outweighs function pointer overheads.
I think you misunderstood what I meant by soft-disable :) Basically
bring in more of what ARM does in disable_irq/enable_irq.
> Sigh, I'm not teaching you to suck eggs - I was trying to justify
> clearly _why_ we have these different "flow" handlers on ARM and why
> they are important by contrasting the differences between them.
Yup, and I've finally been convinced, and Thomas patch _does_ have
different flow handlers. However, it doesn't do soft-disable or
lazy-disable as your prefer for disable_irq which means that you'll
still lose edge irqs on ARM. There are 2 ways out:
make disable_irq/enable_irq go through a specific implementation by the
flow handler or just ... generically have disable_irq just mark the
interrupt as disabled in the descriptor, and only actually disable it if
it happens to occur while it was marked disabled (in which case it can
be marked "pending" and possibly re-triggered on enable_irq if the
controller doesn't latch). I even had an idea of how to avoid the
re-trigger on controllers that _do_ latch properly easily: by having
chip->unmask return wether it needs re-emitting or not.
> Obviously, I should've just ignored your email since you know everything
> already.
Bah, don't take it that way please ! I was making a joke ...
Cheers,
Ben.
next prev parent reply other threads:[~2006-05-18 9:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-17 0:13 [patch 00/50] genirq: -V3 Ingo Molnar
2006-05-17 6:11 ` Benjamin Herrenschmidt
2006-05-17 22:27 ` Russell King
2006-05-18 0:32 ` Benjamin Herrenschmidt
2006-05-18 7:38 ` Russell King
2006-05-18 9:33 ` Benjamin Herrenschmidt [this message]
2006-05-17 22:15 ` [patchset] Generic IRQ Subsystem: -V4 Ingo Molnar
2006-05-18 22:24 ` Ingo Oeser
2006-05-19 9:31 ` Ingo Molnar
2006-05-19 17:00 ` Ingo Oeser
2006-05-19 14:52 ` [patchset] Generic IRQ Subsystem: -V5 Ingo Molnar
2006-06-07 16:54 ` Russell King
2006-06-07 17:20 ` Thomas Gleixner
2006-06-07 18:57 ` Thomas Gleixner
2006-06-08 11:35 ` Russell King
2006-06-08 12:04 ` [PATCH] genirq: Fix missing initializer for unmask in no_irq_chip Thomas Gleixner
2006-06-08 15:29 ` Russell King
2006-06-08 15:58 ` Thomas Gleixner
2006-06-08 18:57 ` Thomas Gleixner
2006-06-08 22:32 ` Thomas Gleixner
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=1147944818.5192.7.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=akpm@osdl.org \
--cc=hch@infradead.org \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--cc=rmk+lkml@arm.linux.org.uk \
--cc=tglx@linutronix.de \
/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