Re: [PATCH v6 1/4] arm: introduce psci_smp_ops

From: Stefano Stabellini
Date: Thu Apr 18 2013 - 12:20:40 EST


On Thu, 18 Apr 2013, Russell King - ARM Linux wrote:
> On Fri, Apr 05, 2013 at 02:11:32PM +0100, Stefano Stabellini wrote:
> > + psci_init();
> > #ifdef CONFIG_SMP
> > if (is_smp()) {
> > - smp_set_ops(mdesc->smp);
> > + if (mdesc->smp)
> > + smp_set_ops(mdesc->smp);
> > + else if (psci_smp_available())
> > + smp_set_ops(&psci_smp_ops);
>
> So, I have a vague recollection that the ordering of the above got discussed
> but I can't find it amongst the 21k of messages so far this year.
>
> The above looks weird to me. Surely this should be:
>
> if (psci_smp_available())
> smp_set_ops(&psci_smp_ops);
> else if (mdesc->smp)
> smp_set_ops(mdesc->ops);
>
> This means that if PSCI is available, and provides a set of operations,
> we override whatever the platform has statically provided.
>
> Remember, we're trying to move away from using "mdesc"s for platform
> stuff, relying on things like DT and such like. We really should not
> be going for mdesc-overriding-newstuff but newstuff-overriding-mdesc.

That's correct, in fact if you look at the next patch you'll see that it
changes the order.

I introduced the mechanism first and changed the priority later - it
should help bisectability.
I can fold the two patches into one if you prefer.


> Now, if the psci stuff can't be relied upon to provide the correct
> functionality, then that's a separate problem which needs addressing
> differently.
>
> This should allow the Xen problem to be resolved, because Xen will
> provide the PSCI operations, and it's correct in that case to override
> the platform's SMP operations.

Yes, increasing the priority of PSCI helps Xen a lot.
In order to completely solve the issue for Xen though, another patch is
needed (http://marc.info/?l=linux-kernel&m=136630106201968&w=2) because
of the introduction of smp_init.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/