On 8/8/2019 1:52 AM, Eduardo Habkost wrote:
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?

Even without this patch and HMAT patch, if without numa configuration, global nb_numa_nodes is always existing and default is 0, so nb_nodes will be auto set to 1, so from my point of view, this patch will not change ABI.

And I would also want to listen David's opinion.

      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);




Reply via email to