From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org, Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org, dwalker@mvista.com
Subject: Re: [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers
Date: Sun, 19 Nov 2006 23:40:01 +0300 [thread overview]
Message-ID: <4560C121.30403@ru.mvista.com> (raw)
In-Reply-To: <1163968376.5826.110.camel@localhost.localdomain>
Hello.
Benjamin Herrenschmidt wrote:
>> I must not that this whole ack() vs eoi() stuff is misleading. For example,
>>in 8259 driver, mask_ack() method actually sends EOI to PIC, not ACK's an IRQ
>>-- the actual ACK is implicit on x86 and is used to read the interrupt vector
>>form 8259 on PPC. So, IMO, there probably should only have been either ack()
>>or eoi() method in the first place. Though I'm not familiar with ARM from
>>which genirq stuff originated...
> They are different concepts. Ack clears the event on the PIC, it's
> tyically necessary for resetting the edge detection logic for edge
> interrupts and has to happen before the handler is called.
I know 8259. :-)
It also resets the corresponding IRQ bit in IRR, and sets it in ISR where
it's then cleared on EOI command.
> On MPIC or XICS, this is implicit by reading the vector. On some more
> dumb controllers, this has to be done explicitely.
This is not implicit -- CPU has to read INTACK reg. on OpenPIC. Really
implicit method is in action on x86 where CPU issues dual ACK bus cycle to get
the vector form 8259...
> EOI is a more "high level" thing that some "intelligent" PICs that
> automatically raise the priority do to restore the priority to what it
> was before the interrupt occured.
Thank you, I know. Even 8259 has the notion of priority and EOI works the
same way here.
> Ben.
WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Ingo Molnar <mingo@elte.hu>,
linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org,
dwalker@mvista.com
Subject: Re: [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers
Date: Sun, 19 Nov 2006 23:40:01 +0300 [thread overview]
Message-ID: <4560C121.30403@ru.mvista.com> (raw)
In-Reply-To: <1163968376.5826.110.camel@localhost.localdomain>
Hello.
Benjamin Herrenschmidt wrote:
>> I must not that this whole ack() vs eoi() stuff is misleading. For example,
>>in 8259 driver, mask_ack() method actually sends EOI to PIC, not ACK's an IRQ
>>-- the actual ACK is implicit on x86 and is used to read the interrupt vector
>>form 8259 on PPC. So, IMO, there probably should only have been either ack()
>>or eoi() method in the first place. Though I'm not familiar with ARM from
>>which genirq stuff originated...
> They are different concepts. Ack clears the event on the PIC, it's
> tyically necessary for resetting the edge detection logic for edge
> interrupts and has to happen before the handler is called.
I know 8259. :-)
It also resets the corresponding IRQ bit in IRR, and sets it in ISR where
it's then cleared on EOI command.
> On MPIC or XICS, this is implicit by reading the vector. On some more
> dumb controllers, this has to be done explicitely.
This is not implicit -- CPU has to read INTACK reg. on OpenPIC. Really
implicit method is in action on x86 where CPU issues dual ACK bus cycle to get
the vector form 8259...
> EOI is a more "high level" thing that some "intelligent" PICs that
> automatically raise the priority do to restore the priority to what it
> was before the interrupt occured.
Thank you, I know. Even 8259 has the notion of priority and EOI works the
same way here.
> Ben.
WBR, Sergei
next prev parent reply other threads:[~2006-11-19 20:38 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-19 19:43 [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers Sergei Shtylyov
2006-11-19 19:43 ` Sergei Shtylyov
2006-11-19 20:00 ` Benjamin Herrenschmidt
2006-11-19 20:00 ` Benjamin Herrenschmidt
2006-11-19 20:04 ` Benjamin Herrenschmidt
2006-11-19 20:04 ` Benjamin Herrenschmidt
2006-11-19 20:11 ` Sergei Shtylyov
2006-11-19 20:11 ` Sergei Shtylyov
2006-11-19 20:06 ` Ingo Molnar
2006-11-19 20:06 ` Ingo Molnar
2006-11-19 20:19 ` Benjamin Herrenschmidt
2006-11-19 20:19 ` Benjamin Herrenschmidt
2006-11-19 20:23 ` Ingo Molnar
2006-11-19 20:23 ` Ingo Molnar
2006-11-19 20:31 ` Sergei Shtylyov
2006-11-19 20:31 ` Sergei Shtylyov
2006-11-19 20:36 ` Benjamin Herrenschmidt
2006-11-19 20:36 ` Benjamin Herrenschmidt
2006-11-19 20:42 ` Sergei Shtylyov
2006-11-19 20:42 ` Sergei Shtylyov
2006-11-19 20:45 ` Benjamin Herrenschmidt
2006-11-19 20:45 ` Benjamin Herrenschmidt
2006-11-19 20:49 ` Benjamin Herrenschmidt
2006-11-19 20:49 ` Benjamin Herrenschmidt
2006-11-20 1:16 ` Benjamin Herrenschmidt
2006-11-20 1:16 ` Benjamin Herrenschmidt
2006-11-20 10:01 ` Ingo Molnar
2006-11-20 10:01 ` Ingo Molnar
2006-11-20 15:29 ` Sergei Shtylyov
2006-11-20 15:29 ` Sergei Shtylyov
2006-11-20 16:56 ` Ingo Molnar
2006-11-20 16:56 ` Ingo Molnar
2006-11-20 17:03 ` Sergei Shtylyov
2006-11-20 17:03 ` Sergei Shtylyov
2006-11-20 17:26 ` Ingo Molnar
2006-11-20 17:26 ` Ingo Molnar
2006-11-20 17:55 ` Ingo Molnar
2006-11-20 17:55 ` Ingo Molnar
2006-11-20 18:20 ` Daniel Walker
2006-11-20 18:20 ` Daniel Walker
2006-11-20 18:29 ` Ingo Molnar
2006-11-20 18:29 ` Ingo Molnar
2006-11-20 18:30 ` Sergei Shtylyov
2006-11-20 18:30 ` Sergei Shtylyov
2006-11-20 19:10 ` Ingo Molnar
2006-11-20 19:10 ` Ingo Molnar
2006-11-20 19:11 ` Ingo Molnar
2006-11-20 19:11 ` Ingo Molnar
2006-11-20 19:18 ` Sergei Shtylyov
2006-11-20 19:18 ` Sergei Shtylyov
2006-11-20 19:24 ` Sergei Shtylyov
2006-11-20 19:24 ` Sergei Shtylyov
2006-11-20 19:23 ` Ingo Molnar
2006-11-20 20:11 ` Benjamin Herrenschmidt
2006-11-20 20:11 ` Benjamin Herrenschmidt
2006-11-20 20:09 ` Benjamin Herrenschmidt
2006-11-20 20:09 ` Benjamin Herrenschmidt
2006-11-20 16:25 ` Daniel Walker
2006-11-20 16:25 ` Daniel Walker
2006-11-20 16:42 ` Ingo Molnar
2006-11-20 17:01 ` Daniel Walker
2006-11-20 20:07 ` Benjamin Herrenschmidt
2006-11-20 20:07 ` Benjamin Herrenschmidt
2006-11-19 20:26 ` Sergei Shtylyov
2006-11-19 20:26 ` Sergei Shtylyov
2006-11-19 20:32 ` Benjamin Herrenschmidt
2006-11-19 20:32 ` Benjamin Herrenschmidt
2006-11-19 20:40 ` Sergei Shtylyov [this message]
2006-11-19 20:40 ` Sergei Shtylyov
2006-11-19 20:41 ` Benjamin Herrenschmidt
2006-11-19 20:41 ` Benjamin Herrenschmidt
2006-11-19 20:52 ` Sergei Shtylyov
2006-11-19 20:52 ` Sergei Shtylyov
2006-11-19 21:08 ` Benjamin Herrenschmidt
2006-11-19 21:08 ` Benjamin Herrenschmidt
2006-11-20 15:46 ` Sergei Shtylyov
2006-11-20 15:46 ` Sergei Shtylyov
2006-11-19 20:44 ` Sergei Shtylyov
2006-11-19 20:48 ` Benjamin Herrenschmidt
2007-05-17 13:20 ` [PATCH 2.6.21-rt2] PowerPC: revert fix for threaded fasteoi " Sergei Shtylyov
2007-05-17 13:20 ` Sergei Shtylyov
2007-07-12 16:47 ` Sergei Shtylyov
2007-07-12 16:52 ` Thomas Gleixner
2007-07-12 16:52 ` Thomas Gleixner
2007-07-13 17:19 ` Sergei Shtylyov
2007-07-13 17:19 ` Sergei Shtylyov
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=4560C121.30403@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=benh@kernel.crashing.org \
--cc=dwalker@mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.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 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.