Re: [PATCH] irqchip/sifive-plic: default to enabled

From: Marc Zyngier
Date: Thu Nov 17 2022 - 15:26:17 EST


On Thu, 17 Nov 2022 19:57:17 +0000,
Conor Dooley <conor@xxxxxxxxxx> wrote:
>
> On Thu, Nov 17, 2022 at 07:36:57PM +0000, Marc Zyngier wrote:
> > On Thu, 17 Nov 2022 18:59:43 +0000,
> > Conor Dooley <conor@xxxxxxxxxx> wrote:
> > >
> > > From: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> > >
> > > The SiFive PLIC driver is used by all current implementations, including
> > > those that do not have a SiFive PLIC. Default the driver to enabled,
> > > with the intention of later removing the current "every SOC selects
> > > this" situation in Kconfig.socs at the moment.
> > >
> > > The speculative "potential others" in the description no longer makes
> > > any sense, as the driver is always used. Update the Kconfig symbol's
> > > description to reflect the driver's ubiquitous state.
> > >
> > > Signed-off-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> > > ---
> > > Hey Marc,
> > >
> > > I recall some discussion when this driver was extended to other PLICs a
> > > few months ago:
> > > https://lore.kernel.org/linux-riscv/20511a05f39408c8ffbcc98923c4abd2@xxxxxxxxxx/
> > >
> > > Perhaps I got the wrong impression, but it seemed to me that you intend
> > > for future implementations to reuse this driver where possible?
> >
> > Well, within reasons. People seem to have some very liberal
> > interpretations of the architecture spec...
>
> Yeah, I know.. something something "RISC-V is meant to be extensible"
> something something. Even if that means doing some "standard" thing
> your own way apparently.

Funny how someone's "extensible" is someone else's "terminally
broken". I guess HW folks will eventually learn that, possibly the
hard way.

>
> > > I'd like to think, and surely will be proven wrong, that ~all future
> > > plic implementations should be similar enough to fit that bill.
> > > It's kinda on this basis that I figure switching this thing to default y
> > > should be okay. It's already only buildable on RISC-V & every
> > > implementation uses it, so no difference there.
> >
> > If you expect this to be present at all times, why isn't this selected
> > by the architecture Kconfig instead?
>
> Everyone at the moment needs it, but that's not always going to be true.
> The AIA APLIC that's currently out for review is the "next generation"
> interrupt controller. When we will actually see one in the wild is
> another question.
>
> > I always find it pretty odd to
> > have something that is 'default y' and yet constrained by a 'depend
> > MYARCH'. A 'select PLIC' would make a lot more sense.
> >
> > And then you can stop making this user selectable.
>
> I was considering moving the select to arch level, but settled for this
> as while I'd like to stop the individual SOCs doing `select PLIC`, I can
> see why someone building for a (future) system with the new AIA stuff
> may not care to build it.
>
> Or maybe the overhead of this one driver is nothing to care about?

In the grand scheme of things, it really doesn't matter. Hardly anyone
is configuring their own kernel. People use distro kernels, which will
have *everything* enabled.

As an example, on the arm64 side we have long decided that some things
were not worth the trouble, such as selectable root interrupt
controllers and non-SMP support. Life is too short to care about
those.

M.

--
Without deviation from the norm, progress is not possible.