From: tglx@linutronix.de (Thomas Gleixner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/5] msm: timer: SMP timer support for msm
Date: Mon, 6 Dec 2010 12:11:38 +0100 (CET) [thread overview]
Message-ID: <alpine.LFD.2.00.1012061156100.2653@localhost6.localdomain6> (raw)
In-Reply-To: <20101206102046.GD29563@n2100.arm.linux.org.uk>
On Mon, 6 Dec 2010, Russell King - ARM Linux wrote:
> On Mon, Dec 06, 2010 at 10:56:14AM +0100, Thomas Gleixner wrote:
> > > + local_irq_save(flags);
> > > + get_irq_chip(clock->irq.irq)->unmask(clock->irq.irq);
> >
> > Why are you fiddling wiht the irqchip functions directly ? Please use
> > disable_irq/enable_irq if at all.
>
> PPI. The interrupt has to be enabled by the very same CPU that wants
> to receive the interrupt. Other CPUs on the system do not have access
> to the interrupt enable bits for PPIs.
That's fine, but the code is called on that very cpu anyway, so
enable_irq() ends up calling the very same chip->unmask()
> That's something which genirq can't handle because it doesn't _actually_
> support real per-CPU interrupts - iow, ones which are truely private to
> CPU N.
So what you want to avoid are the enable/disable_irq() side effects
(setting/clearing the IRQ_DISABLED flags etc.) as they would apply to
the other cpus as well - which would be bogus of course.
We could actually solve that in the genirq code in a halfways simple
way. Now that we get the references to the irq descriptors via
irq_to_desc() we could add a function which marks an irq as percpu and
use the main irq descriptor as a place holder which allocates percpu
memory for the real descriptors. irq_to_desc() would lookup the main
descriptor and hand back the one for the current cpu if the percpu
pointer is set. That would allow you to use the generic functions at
least with some care (functions need to be called from migration
disabled code).
Thanks,
tglx
next prev parent reply other threads:[~2010-12-06 11:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-06 7:16 [PATCH 0/5] SMP support for msm Jeff Ohlstein
2010-12-06 7:16 ` [PATCH 1/5] msm: Secure Channel Manager (SCM) support Jeff Ohlstein
2010-12-06 20:00 ` Valdis.Kletnieks at vt.edu
2010-12-06 20:52 ` Russell King - ARM Linux
2010-12-15 7:48 ` Pavel Machek
2010-12-15 14:05 ` David Brown
2010-12-15 16:07 ` Russell King - ARM Linux
2010-12-06 7:16 ` [PATCH 2/5] msm: scm-boot: Support for setting cold/warm boot addresses Jeff Ohlstein
2010-12-06 7:16 ` [PATCH 3/5] msm: timer: SMP timer support for msm Jeff Ohlstein
2010-12-06 9:56 ` Thomas Gleixner
2010-12-06 10:20 ` Russell King - ARM Linux
2010-12-06 11:11 ` Thomas Gleixner [this message]
2010-12-07 4:49 ` Jeff Ohlstein
2010-12-07 8:17 ` Russell King - ARM Linux
2010-12-20 12:21 ` Russell King - ARM Linux
2010-12-06 7:16 ` [PATCH 4/5] msm: hotplug: support cpu hotplug on msm Jeff Ohlstein
2010-12-06 7:16 ` [PATCH 5/5] msm: add SMP support for msm Jeff Ohlstein
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=alpine.LFD.2.00.1012061156100.2653@localhost6.localdomain6 \
--to=tglx@linutronix.de \
--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