On Tue, 2 Jul 2019 16:50:24 +0800 Tao Xu <tao3...@intel.com> wrote: > On 7/1/2019 7:25 PM, Igor Mammedov wrote: > > On Fri, 14 Jun 2019 23:56:24 +0800 > > Tao Xu <tao3...@intel.com> wrote: > > > ... > >> @@ -2710,6 +2711,8 @@ void acpi_build(AcpiBuildTables *tables, > >> MachineState *machine) > >> acpi_add_table(table_offsets, tables_blob); > >> build_slit(tables_blob, tables->linker, machine); > >> } > >> + acpi_add_table(table_offsets, tables_blob); > >> + build_hmat(tables_blob, tables->linker, machine); > > I'm not sure if we should add it unconditionally. > > Is this table used in any meaningful manner by guest when > > it's incomplete (i.e. populated only with SPA records)? > > > Hi Igor, > > In ACPI 6.2, the linux kernel use it to show the memory ranges' > node-id(Proximity Domain). In ACPI 6.3, the linux kernel use it to show > the numa node's closest initiator(Generic Initiator or Processor, directly > attached). It is useful for a memory only numa node, because with > SPA(renamed as "Memory Proximity Domain Attributes Structure" in ACPI > 6.3) the user-space can know the topology of hardware heterogeneous > memory. I think I should add a doc to describe the use case in QEMU. Could you point out to me the specific kernel code that parses and uses HMAT?
> > Therefore, the numa CLI may be lack of a input which can indicate the > Initiator of a memory only numa node. Dan suggested me to add a new > parameter for that[1]. > > Maybe like: > -numa node,mem=4G,nodeid=2,initiator=0 > > [1] https://patchwork.kernel.org/cover/10934417/ > > Thanks > > Tao > > > > > > > > > > > >