From: Sebastien Dugue <sebastien.dugue@bull.net>
To: benh@kernel.crashing.org
Cc: linux-kernel@vger.kernel.org, Milton Miller <miltonm@bga.com>,
linuxppc-dev@ozlabs.org, Jan-Bernd Themann <ossthema@de.ibm.com>,
Paul Mackerras <paulus@samba.org>,
Christoph Raisch <RAISCH@de.ibm.com>
Subject: Re: [PATCH HACK] powerpc: quick hack to get a functional eHEA with hardirq preemption
Date: Thu, 25 Sep 2008 09:31:19 +0200 [thread overview]
Message-ID: <20080925093119.5dd4df4c@bull.net> (raw)
In-Reply-To: <1222290847.8277.81.camel@pasglop>
On Thu, 25 Sep 2008 07:14:07 +1000 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > There may be some implicit assumption in that we expect the cpu
> > priority to be returned to normal by the EOI, but there is nothing in
> > the hardware that requires the EOI to come from the same cpu as
> > accepted the interrupt for processing, with the exception of the IPI
> > which is per-cpu (and the only interrupt that is per-cpu).
>
> Well, there is one fundamental one: The XIRR register we access is
> per-CPU, so if we are to return the right processor priority, we must
> make sure we write the right XIRR.
That's already the case as the irq fetch (xx_xirr_info_get()) and
eoi (xx_xirr_info_set()) are both done in interrupt context, therefore on
the same cpu.
>
> Same with Cell, MPIC, actually and a few others. In general I'd say most
> fast_eoi type PICs have this requirement.
>
> > It would probably mean adding the concept of the current cpu priority
> > vs interrupts and making sure we write it to hardware at irq_exit()
> > time when deferring the actual irq handlers.
>
> I think we need something like a special -rt variant of the fast_eoi
> handler that masks & eoi's in ack() before the thread is spun off, and
> unmasks instead of eoi() when the irq processing is complete.
This is what is already done in the threaded case:
- fetch + mask + eoi in interrupt context
- unmask in the thread when processing is complete.
Sebastien.
WARNING: multiple messages have this Message-ID (diff)
From: Sebastien Dugue <sebastien.dugue@bull.net>
To: benh@kernel.crashing.org
Cc: Milton Miller <miltonm@bga.com>,
Paul Mackerras <paulus@samba.org>,
linux-kernel@vger.kernel.org,
Christoph Raisch <RAISCH@de.ibm.com>,
linuxppc-dev@ozlabs.org, Jan-Bernd Themann <ossthema@de.ibm.com>
Subject: Re: [PATCH HACK] powerpc: quick hack to get a functional eHEA with hardirq preemption
Date: Thu, 25 Sep 2008 09:31:19 +0200 [thread overview]
Message-ID: <20080925093119.5dd4df4c@bull.net> (raw)
In-Reply-To: <1222290847.8277.81.camel@pasglop>
On Thu, 25 Sep 2008 07:14:07 +1000 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > There may be some implicit assumption in that we expect the cpu
> > priority to be returned to normal by the EOI, but there is nothing in
> > the hardware that requires the EOI to come from the same cpu as
> > accepted the interrupt for processing, with the exception of the IPI
> > which is per-cpu (and the only interrupt that is per-cpu).
>
> Well, there is one fundamental one: The XIRR register we access is
> per-CPU, so if we are to return the right processor priority, we must
> make sure we write the right XIRR.
That's already the case as the irq fetch (xx_xirr_info_get()) and
eoi (xx_xirr_info_set()) are both done in interrupt context, therefore on
the same cpu.
>
> Same with Cell, MPIC, actually and a few others. In general I'd say most
> fast_eoi type PICs have this requirement.
>
> > It would probably mean adding the concept of the current cpu priority
> > vs interrupts and making sure we write it to hardware at irq_exit()
> > time when deferring the actual irq handlers.
>
> I think we need something like a special -rt variant of the fast_eoi
> handler that masks & eoi's in ack() before the thread is spun off, and
> unmasks instead of eoi() when the irq processing is complete.
This is what is already done in the threaded case:
- fetch + mask + eoi in interrupt context
- unmask in the thread when processing is complete.
Sebastien.
next prev parent reply other threads:[~2008-09-25 7:31 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-15 8:04 [PATCH HACK] powerpc: quick hack to get a functional eHEA with hardirq preemption Sebastien Dugue
2008-09-15 8:04 ` Sebastien Dugue
2008-09-15 12:17 ` Jan-Bernd Themann
2008-09-15 12:17 ` Jan-Bernd Themann
2008-09-15 12:35 ` Thomas Klein
2008-09-15 12:35 ` Thomas Klein
2008-09-15 13:13 ` Sebastien Dugue
2008-09-15 13:13 ` Sebastien Dugue
2008-09-16 11:59 ` Anton Vorontsov
2008-09-16 11:59 ` Anton Vorontsov
2008-09-16 12:22 ` Sebastien Dugue
2008-09-16 12:22 ` Sebastien Dugue
2008-09-18 7:53 ` Christoph Raisch
2008-09-18 7:53 ` Christoph Raisch
2008-09-18 9:27 ` Sebastien Dugue
2008-09-18 9:27 ` Sebastien Dugue
2008-09-18 10:42 ` [PATCH HACK] powerpc: quick hack to get a functional eHEA with hardirq preemption, eHCA is close Christoph Raisch
2008-09-18 10:42 ` Christoph Raisch
2008-09-18 12:31 ` Sebastien Dugue
2008-09-18 12:31 ` Sebastien Dugue
2008-09-23 15:43 ` Jan-Bernd Themann
2008-09-23 15:43 ` Jan-Bernd Themann
2008-09-24 9:58 ` [PATCH HACK] powerpc: quick hack to get a functional eHEA with hardirq preemption Milton Miller
2008-09-24 9:58 ` Milton Miller
2008-09-24 10:17 ` Benjamin Herrenschmidt
2008-09-24 10:17 ` Benjamin Herrenschmidt
2008-09-24 11:02 ` Milton Miller
2008-09-24 11:02 ` Milton Miller
2008-09-24 21:14 ` Benjamin Herrenschmidt
2008-09-24 21:14 ` Benjamin Herrenschmidt
2008-09-25 7:31 ` Sebastien Dugue [this message]
2008-09-25 7:31 ` Sebastien Dugue
2008-09-24 12:35 ` Sebastien Dugue
2008-09-24 12:35 ` Sebastien Dugue
2008-09-24 21:15 ` Benjamin Herrenschmidt
2008-09-24 21:15 ` Benjamin Herrenschmidt
2008-09-25 7:18 ` Sebastien Dugue
2008-09-25 7:18 ` Sebastien Dugue
2008-09-25 7:22 ` Benjamin Herrenschmidt
2008-09-25 7:22 ` Benjamin Herrenschmidt
2008-09-25 7:42 ` Sebastien Dugue
2008-09-25 7:42 ` Sebastien Dugue
2008-09-25 8:36 ` Benjamin Herrenschmidt
2008-09-25 8:36 ` Benjamin Herrenschmidt
2008-09-25 8:39 ` Sebastien Dugue
2008-09-25 8:39 ` Sebastien Dugue
2008-09-24 12:30 ` Sebastien Dugue
2008-09-24 12:30 ` Sebastien Dugue
2008-09-24 16:42 ` Milton Miller
2008-09-24 16:42 ` Milton Miller
2008-09-24 21:16 ` Benjamin Herrenschmidt
2008-09-24 21:16 ` Benjamin Herrenschmidt
2008-09-25 3:56 ` Milton Miller
2008-09-25 3:56 ` Milton Miller
2008-09-25 8:45 ` Sebastien Dugue
2008-09-25 8:45 ` Sebastien Dugue
-- strict thread matches above, loose matches on Subject: below --
2008-09-25 23:40 Milton Miller
2008-09-25 23:40 ` Milton Miller
2008-09-26 9:16 ` Sebastien Dugue
2008-09-26 9:16 ` Sebastien Dugue
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=20080925093119.5dd4df4c@bull.net \
--to=sebastien.dugue@bull.net \
--cc=RAISCH@de.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=miltonm@bga.com \
--cc=ossthema@de.ibm.com \
--cc=paulus@samba.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.