On Tue, Aug 06, 2019 at 02:50:55PM +0200, Igor Mammedov wrote: > On Mon, 5 Aug 2019 15:13:02 +0800 > Tao Xu <tao3...@intel.com> wrote: > > > Add MachineClass::auto_enable_numa field. When it is true, a NUMA node > > is expected to be created implicitly. > > > > Acked-by: David Gibson <da...@gibson.dropbear.id.au> > > Suggested-by: Igor Mammedov <imamm...@redhat.com> > > Suggested-by: Eduardo Habkost <ehabk...@redhat.com> > > Signed-off-by: Tao Xu <tao3...@intel.com> [...] > > + mc->auto_enable_numa = true; > > this will always create a numa node (that will affect not only RAM but > also all other components that depends on numa state (like CPUs)), > where as spapr_populate_memory() was only faking numa node in DT for RAM. > It makes non-numa configuration impossible. > Seeing David's ACK on the patch it might be fine, but I believe > commit message should capture that and explain why the change in > behavior is fine.
After a quick look, all spapr code seems to have the same behavior when nb_numa_nodes==0 and nb_numa_nodes==1, but I'd like to be sure. David and/or Tao Xu: do you confirm there's no ABI change at all on spapr after implicitly creating a NUMA node? > > > smc->default_caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_OFF; > > smc->default_caps.caps[SPAPR_CAP_VSX] = SPAPR_CAP_ON; > > diff --git a/include/hw/boards.h b/include/hw/boards.h > > index 2eb9a0b4e0..4a350b87d2 100644 > > --- a/include/hw/boards.h > > +++ b/include/hw/boards.h > > @@ -220,6 +220,7 @@ struct MachineClass { > > bool smbus_no_migration_support; > > bool nvdimm_supported; > > bool numa_mem_supported; > > + bool auto_enable_numa; > > > > HotplugHandler *(*get_hotplug_handler)(MachineState *machine, > > DeviceState *dev); > -- Eduardo