From: Mark Rutland <mark.rutland@arm.com>
To: Rich Felker <dalias@libc.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-sh@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Marc Zyngier <Marc.Zyngier@arm.com>
Subject: Re: [PATCH v6 2/2] clocksource: add J-Core timer/clocksource driver
Date: Thu, 25 Aug 2016 19:21:13 +0100 [thread overview]
Message-ID: <20160825182053.GA15000@remoulade> (raw)
In-Reply-To: <20160825175135.GC15995@brightrain.aerifal.cx>
On Thu, Aug 25, 2016 at 01:51:35PM -0400, Rich Felker wrote:
> On Thu, Aug 25, 2016 at 05:38:06PM +0100, Mark Rutland wrote:
> > On Thu, Aug 25, 2016 at 10:56:50AM -0400, Rich Felker wrote:
> > > On Thu, Aug 25, 2016 at 10:07:08AM +0200, Thomas Gleixner wrote:
> > > Nominally it uses the same range of hardware interrupt numbers for all
> > > (presently both) cpus, but some of them get delivered to a specific
> > > cpu associated with the event (presently, IPI and timer; IPI is on a
> > > fixed number at synthesis time but timer is runtime configurable)
> > > while others are conceptually deliverable to either cpu (presently
> > > only delivered to cpu0, but that's treated as an implementation
> > > detail).
> >
> > Given you say it's delivered to the CPU associated with the event (and you have
> > different PIT bases per-cpu), it sounds like your timer interrupt is percpu,
> > it's just that the hwirq number can be chosen by software.
>
> It's what I would call percpu in the hardware, but I'm not convinced
> that the Linux irq subsystem's "percpu" stuff models it in a way
> that fits the hw, nor that it's in any way necessary.
My understanding was that you used the same hwirq number to handle interrupts
from per-cpu resources being delivered to their relevant CPUs, independently of
each other.
That in my mind is a perfect match.
The only difference, as I've stated a number of times, seems to be that you can
choose the hwirq number from software.
> > > It currently works requesting the irq with flags that ensure the
> > > handler runs on the same cpu it was delivered on, without using any
> > > other percpu irq framework. If you have concerns about ways this could
> > > break and want me to make the drivers do something else, I'm open to
> > > suggestions.
> >
> > As I suggested, I don't think that this is right, and you need some mechanism
> > to describe to the kernel that the interrupt is percpu (e.g. a flag in the
> > interrupt-specifier in DT).
>
> Thomas seemed to think it's okay as-is. Can you describe what you
> expect could go wrong by using request_irq rather than the ARM-style
> percpu irq framework?
The percpu irq code is designed to expect a hwirq number being shared by
banked, cpu-local interrupts, the regular request_irq code is not. Even if the
latter happens to work today for your use-case, that is not by design.
Relying on non-deliberate properties of request_irq makes it far harder for the
generic code to be altered in future, with global vs percpu locking,
synchronisation, accounting, etc being broken.
Thanks,
Mark.
next prev parent reply other threads:[~2016-08-25 18:21 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-04 4:30 [PATCH v6 0/2] J-Core timer support Rich Felker
[not found] ` <cover.147018b3518.git.dalias-8zAoT0mYgF4@public.gmane.org>
2016-08-04 4:30 ` [PATCH v6 1/2] of: add J-Core timer bindings Rich Felker
[not found] ` <5e1d4f3346f69bdd9d840c8b5a855c1f93ff93f6.147018b3518.git.dalias-8zAoT0mYgF4@public.gmane.org>
2016-08-04 18:16 ` Rob Herring
2016-08-04 4:30 ` [PATCH v6 2/2] clocksource: add J-Core timer/clocksource driver Rich Felker
2016-08-04 8:24 ` Alexnader Kuleshov
2016-08-04 19:42 ` Rich Felker
2016-08-24 16:42 ` Daniel Lezcano
2016-08-24 17:40 ` Rich Felker
[not found] ` <20160824174001.GW15995-C3MtFaGISjmo6RMmaWD+6Sb1p8zYI1N1@public.gmane.org>
2016-08-24 19:01 ` Marc Zyngier
2016-08-24 19:20 ` Rich Felker
[not found] ` <20160824192009.GX15995-C3MtFaGISjmo6RMmaWD+6Sb1p8zYI1N1@public.gmane.org>
2016-08-24 22:21 ` Mark Rutland
2016-08-24 20:01 ` Arnd Bergmann
2016-08-24 20:52 ` Rich Felker
2016-08-24 21:22 ` Mark Rutland
2016-08-24 21:44 ` Rich Felker
2016-08-24 21:57 ` Arnd Bergmann
2016-08-25 10:23 ` Arnd Bergmann
2016-08-24 22:54 ` Mark Rutland
2016-08-25 8:07 ` Thomas Gleixner
2016-08-25 14:56 ` Rich Felker
2016-08-25 15:41 ` Thomas Gleixner
2016-08-25 17:45 ` Rich Felker
2016-08-25 16:38 ` Mark Rutland
2016-08-25 17:51 ` Rich Felker
2016-08-25 18:21 ` Mark Rutland [this message]
2016-08-25 19:20 ` Rich Felker
2016-08-26 9:04 ` Daniel Lezcano
-- strict thread matches above, loose matches on Subject: below --
2016-08-03 0:18 [PATCH v6 0/2] J-Core timer support Rich Felker
[not found] ` <cover.1470183518.git.dalias-8zAoT0mYgF4@public.gmane.org>
2016-03-17 23:12 ` [PATCH v6 2/2] clocksource: add J-Core timer/clocksource driver Rich Felker
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=20160825182053.GA15000@remoulade \
--to=mark.rutland@arm.com \
--cc=Marc.Zyngier@arm.com \
--cc=dalias@libc.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=robh+dt@kernel.org \
--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;
as well as URLs for NNTP newsgroup(s).