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

From: Rohit Khanna
Date: Thu Apr 26 2018 - 15:54:11 EST


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"

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