From: Mark Rutland <mark.rutland@arm.com>
To: Rich Felker <dalias@libc.org>
Cc: linux-kernel@vger.kernel.org, linux-sh@vger.kernel.org,
devicetree@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,
Marc Zyngier <marc.zyngier@arm.com>,
Rob Herring <robh+dt@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v4 2/2] irqchip: add J-Core AIC driver
Date: Wed, 27 Jul 2016 14:22:52 +0100 [thread overview]
Message-ID: <20160727132252.GB17195@leverpostej> (raw)
In-Reply-To: <20160727130606.GA15995@brightrain.aerifal.cx>
On Wed, Jul 27, 2016 at 09:06:06AM -0400, Rich Felker wrote:
> On Wed, Jul 27, 2016 at 11:12:36AM +0100, Mark Rutland wrote:
> > On Wed, Jul 27, 2016 at 05:35:09AM +0000, Rich Felker wrote:
> > > +int __init aic_irq_of_init(struct device_node *node, struct device_node *parent)
> > > +{
> > > + struct aic_data *aic = &aic_data;
> > > + unsigned min_irq = 64;
> > > +
> > > + pr_info("Initializing J-Core AIC\n");
> > > +
> > > + if (!of_device_is_compatible(node, "jcore,aic2")) {
> > > + unsigned cpu;
> > > + for_each_possible_cpu(cpu) {
> > > + void __iomem *base = of_iomap(node, cpu);
> > > + if (!base)
> > > + continue;
> >
> > This sounds like it would be a critical error.
> >
> > It would be best to at least pr_warn() if you can't map a CPU's AI
> > interface.
>
> It's looping over possible cpus (per the kernel configuration for max
> cpus) so it's expected that a system with fewer cpus will also have
> fewer reg ranges for the aic. This is not an error. If you think
> there's a different/better way I should write this code, I'm open to
> suggestions.
In your arch code, set possible cpus based on the DT, before
initialising irqchips. i.e. mark any CPUs not in the DT as not possible.
That will also net you savings in other areas (e.g. per-cpu maps not
having to be allocated for CPUs which don't exist).
Otherwise, you're missing real error cases, e.g. two CPUs with only one
AIC region.
> > > + aic->chip.irq_mask = noop;
> > > + aic->chip.irq_unmask = noop;
> >
> > If the core code wants to mask IRQs, how do you handle that? Can you
> > mask your CPU traps?
>
> There's a global imask in the cpu that masks all interrupts that's
> used in the trap entry point, spinlocks, etc. already. This is a cpu
> standard feature and not logically part of the AIC.
Just to check, is that a single bit that masks all IRQs, or is there a
mark per-IRQ?
> My understanding is that the kernel already keeps a logical mask of
> disabled irqs in addition to mask/disable at the irqchip level so
> there's a fairly fast path for ignoring/holding (potentially spurious)
> irqs while they're supposed to be disabled and deferring them until
> they're enabled again.
While we can ignore suprious IRQs, there are cases where that's
insufficient (e.g. screaming interrupts, suspend).
Can your CPU mask IRQs individually?
Thanks,
Mark.
next prev parent reply other threads:[~2016-07-27 13:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-27 5:35 [PATCH v4 0/2] J-Core interrupt controller support Rich Felker
2016-07-27 5:35 ` [PATCH v4 1/2] of: add J-Core interrupt controller bindings Rich Felker
2016-07-27 10:05 ` Mark Rutland
2016-07-27 13:00 ` Rich Felker
2016-07-27 5:35 ` [PATCH v4 2/2] irqchip: add J-Core AIC driver Rich Felker
2016-07-27 10:12 ` Mark Rutland
2016-07-27 13:06 ` Rich Felker
2016-07-27 13:22 ` Mark Rutland [this message]
2016-07-27 17:07 ` Rich Felker
2016-07-27 17:31 ` Mark Rutland
2016-07-27 23:01 ` Rich Felker
[not found] ` <20160727230124.GE15995-C3MtFaGISjmo6RMmaWD+6Sb1p8zYI1N1@public.gmane.org>
2016-07-28 14:02 ` Mark Rutland
2016-07-27 10:15 ` Mark Rutland
2016-07-27 13:08 ` Rich Felker
2016-07-27 13:27 ` Mark Rutland
2016-07-27 17:08 ` 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=20160727132252.GB17195@leverpostej \
--to=mark.rutland@arm.com \
--cc=dalias@libc.org \
--cc=devicetree@vger.kernel.org \
--cc=jason@lakedaemon.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--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