Re: [PATCH] arm64: skip cpu nodes marked as disabled in DT

From: Lorenzo Pieralisi
Date: Mon Apr 30 2018 - 05:54:20 EST


On Thu, Apr 26, 2018 at 07:54:06PM +0000, Rohit Khanna wrote:
> Thanks Lorenzo for pulling out the old thread.
>
> So just to make sure my understanding is correct from the discussion
> on that thread, below is not a preferred approach.
>
> "If CPUs are marked as disabled in the devicetree, make sure they do
> not exist in the system CPU information and CPU topology information."
>
>
> The reason is because - "The meaning of disabled for cpus in ePAPR is
> that the cpu is offline (i.e. in a spinloop or wfi), not that the cpu
> is unavailable."
>
>
> Preferred approach is -
> "Since with this approach the DT should change anyway if on different
> > hardware devices based on the same chip you want to allow booting a
> > different number of CPUs, why do not we remove the cpu nodes instead of
> > disabling them"

Yes, I think that's the best course of action and it was the outcome
of that email thread.

Lorenzo

> Thanks
> Rohit
> ________________________________________
> From: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
> Sent: Thursday, April 26, 2018 3:18 AM
> To: Catalin Marinas; Rohit Khanna
> Cc: will.deacon@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Thierry Reding; Alexander Van Brunt; Bo Yan; Jason Sequeira; Mark Rutland
> Subject: Re: [PATCH] arm64: skip cpu nodes marked as disabled in DT
>
> On Thu, Apr 26, 2018 at 08:25:14AM +0100, Catalin Marinas wrote:
> > On Wed, Apr 25, 2018 at 11:36:06PM +0000, Rohit Khanna wrote:
> > > Adding few other folks.
> >
> > It looks fine to me but cc'ing Mark and Lorenzo (and it should have been
> > posted on linux-arm-kernel@xxxxxxxxxxxxxxxxxxx).
> >
> > > From: Rohit Khanna
> > > Sent: Wednesday, April 25, 2018 4:08 PM
> > > To: catalin.marinas@xxxxxxx; will.deacon@xxxxxxx
> > > Cc: linux-kernel@xxxxxxxxxxxxxxx; Rohit Khanna
> > > Subject: [PATCH] arm64: skip cpu nodes marked as disabled in DT
> > >
> > > Skip the CPU nodes that are marked as disabled in DT.
> > >
> > > Bug 1828570
>
> That's not information that can be used in its current form, which
> bug-tracking system ?
>
> > > Signed-off-by: Rohit Khanna <rokhanna@xxxxxxxxxx>
> > > Reviewed-on: http://git-master/r/1245333
>
> If it is a public mailing list discussion the
>
> Link:
>
> tag and the lkml redirector should be used, I do not know what the
> redirector used here is though.
>
> Process is defined here:
>
> https://www.kernel.org/doc/html/latest/process/submitting-patches.html
>
> > > Reviewed-by: Alexander Van Brunt <avanbrunt@xxxxxxxxxx>
> > > ---
> > > arch/arm64/kernel/smp.c | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> > > index f3e2e3aec0b0..2b4371b0948d 100644
> > > --- a/arch/arm64/kernel/smp.c
> > > +++ b/arch/arm64/kernel/smp.c
> > > @@ -578,6 +578,10 @@ static void __init of_parse_and_init_cpus(void)
> > > for_each_node_by_type(dn, "cpu") {
> > > u64 hwid = of_get_cpu_mpidr(dn);
> > >
> > > + /* Check to see if the cpu is disabled */
> > > + if (!of_device_is_available(dn))
> > > + goto next;
> > > +
>
> This was discussed a long time ago and kind of dropped - I digged the
> thread out of archives for everyone's information:
>
> http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/174324.html
>
> Lorenzo