qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 30/31] pc: ACPI BIOS: reserve SRAT entry for


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v2 30/31] pc: ACPI BIOS: reserve SRAT entry for hotplug mem hole
Date: Wed, 21 May 2014 11:02:06 +0300

On Wed, May 21, 2014 at 09:56:13AM +0200, Igor Mammedov wrote:
> On Tue, 20 May 2014 18:38:15 +0300
> "Michael S. Tsirkin" <address@hidden> wrote:
> 
> > On Tue, May 20, 2014 at 05:15:33PM +0200, Igor Mammedov wrote:
> > > Needed for Windows to use hotplugged memory device, otherwise
> > > it complains that server is not configured for memory hotplug.
> > > Tests shows that aftewards it uses dynamically provided
> > > proximity value from _PXM() method if available.
> > > 
> > > Signed-off-by: Igor Mammedov <address@hidden>
> > > ---
> > >  hw/i386/acpi-build.c |   14 ++++++++++++++
> > >  1 files changed, 14 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > > index 58e7306..97e3a82 100644
> > > --- a/hw/i386/acpi-build.c
> > > +++ b/hw/i386/acpi-build.c
> > > @@ -1199,6 +1199,8 @@ build_srat(GArray *table_data, GArray *linker,
> > >      uint64_t curnode;
> > >      int srat_start, numa_start, slots;
> > >      uint64_t mem_len, mem_base, next_base;
> > > +    PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
> > > +    ram_addr_t hotplug_as_size = 
> > > memory_region_size(&pcms->hotplug_memory);
> > >  
> > >      srat_start = table_data->len;
> > >  
> > > @@ -1263,6 +1265,18 @@ build_srat(GArray *table_data, GArray *linker,
> > >          acpi_build_srat_memory(numamem, 0, 0, 0, MEM_AFFINITY_NOFLAGS);
> > >      }
> > >  
> > > +    /*
> > > +     * Fake entry required by Windows to enable memory hotplug in OS.
> > > +     * Individual DIMM devices override proximity set here via _PXM 
> > > method,
> > > +     * which returns associated with it NUMA node id.
> > 
> > Failed to parse this last sentence. what returns what associated with
> > what? Maybe split to 3-4 short sentences.
> How about:
> "
> Entry is required for Windows to enable memory hotplug in OS.
> Memory devices may override proximity set by this entry,
> providing _PXM method if necessary.
> "

Sounds good, thanks.

> > 
> > > +     */
> > > +    if (hotplug_as_size) {
> > > +        numamem = acpi_data_push(table_data, sizeof *numamem);
> > > +        acpi_build_srat_memory(numamem, pcms->hotplug_memory_base,
> > > +                               hotplug_as_size, 0, 
> > > MEM_AFFINITY_HOTPLUGGABLE |
> > > +                               MEM_AFFINITY_ENABLED);
> > > +    }
> > > +
> > >      build_header(linker, table_data,
> > >                   (void *)(table_data->data + srat_start),
> > >                   "SRAT",
> > > -- 
> > > 1.7.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]