Subject: Re: [RFC FIX v1 1/2] powerpc: Discover radix availability before scanning the memory nodes

From: Bharata B Rao <[email-masked]>
Date: Mon, 8 Jan 2018 14:46:52 +0530

On Sat, Jan 06, 2018 at 10:28:00AM +1100, Michael Ellerman wrote:
> Bharata B Rao <[email-masked]> writes:
> 
> > Currently device tree nodes for memory are scanned before the
> > radix feature is discovered in mmu_early_init_devtree(). Move this
> > routine ahead of scanning memory nodes so that we know if the
> > guest is radix or not when scanning ibm,dynamic-reconfiguration-memory.
> 
> Sorry this doesn't work.
> 
> > diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> > index b15bae2..079d893 100644
> > --- a/arch/powerpc/kernel/prom.c
> > +++ b/arch/powerpc/kernel/prom.c
> > @@ -722,6 +722,8 @@ void __init early_init_devtree(void *params)
> >  	 */
> >  	of_scan_flat_dt(early_init_dt_scan_chosen_ppc, boot_command_line);
> >  
> > +	mmu_early_init_devtree();
> > +
> 
> You've moved this above parse_early_param(), but
> mmu_early_init_devtree() uses disable_radix, which is an early param. So
> this will break disable_radix handling.
> 
> It will probably break other things too because the ordering of this
> init code is very fragile - bootstrapping is hard :)

So from your and Aneesh's reply I realize that my current approach
involving upfront mapping of hotplugged memory with smaller mappings
without afffecting PowerVM will not be feasible. Guess breaking the
mapping appropriately during unplug would be the only real solution then.

Regards,
Bharata.