From: Thomas Gleixner <tglx@linutronix.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Ingo Molnar <mingo@elte.hu>,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: genirq vs. fastack
Date: Wed, 31 May 2006 10:38:54 +0200 [thread overview]
Message-ID: <1149064735.20582.85.camel@localhost.localdomain> (raw)
In-Reply-To: <1149040361.766.10.camel@localhost.localdomain>
Hi Ben,
On Wed, 2006-05-31 at 11:52 +1000, Benjamin Herrenschmidt wrote:
> Hi Thomas, Ingo !
>
> There is one bit in genirq that I don't get (and doesn't work for me),
> it's the "fastack" handler. It does:
>
> out:
> if (!(desc->status & IRQ_DISABLED))
> desc->chip->ack(irq);
> else
> desc->chip->mask(irq);
>
> Which doesn't at all match the needs of things like XICS or MPIC and
> thus I wonder if it does also make sense for controllers for which you
> intend it. It should just be:
>
> desc->chip->end(irq);
>
> Basically, those controllers will have 1) already acke'd the interrupt
> by the time you get the vector (the act of getting the vector does the
> ack), 2) will use a processor priority mecanism to handle non-reentrency
> of an interrupt thus mask/unmask is completely orthogonal to handling of
> interrupts and thus there is no need to do anything about mask/unmask in
> the handler, 3) all we need is to do an "EOI" (end of interrupt) at the
> end of the handling, which is what is done logically in the end()
> handler.
I see your point, but isn't EOI the chip specific implementation of
chip->ack() in that case ?
The intention was to get down to the chip primitives and away from the
flow type chip->functions. Your patch would actually force the flow
control part (if (!(desc->status & IRQ_DISABLED))) back into the end()
function for Ingo's x86 implementation. So the intended seperation of
low level chip functions and flow control would be moot.
tglx
next prev parent reply other threads:[~2006-05-31 8:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-31 1:52 genirq vs. fastack Benjamin Herrenschmidt
2006-05-31 8:38 ` Thomas Gleixner [this message]
2006-05-31 9:11 ` Benjamin Herrenschmidt
2006-05-31 10:19 ` [patch, -rc5-mm1] genirq: add chip->eoi(), fastack -> fasteoi Ingo Molnar
2006-05-31 21:23 ` Benjamin Herrenschmidt
2006-05-31 21:30 ` Ingo Molnar
2006-05-31 21:46 ` Benjamin Herrenschmidt
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=1149064735.20582.85.camel@localhost.localdomain \
--to=tglx@linutronix.de \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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