qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 2/3] hw/acpi-build: account for NVDIMM numa nodes in SRAT


From: Verma, Vishal L
Subject: Re: [PATCH 2/3] hw/acpi-build: account for NVDIMM numa nodes in SRAT
Date: Thu, 28 May 2020 01:24:42 +0000
User-agent: Evolution 3.32.5 (3.32.5-1.fc30)

On Thu, 2020-05-21 at 17:16 +0200, Igor Mammedov wrote:

Hi Igor, Thanks for the review.

[..]
> >  
> > @@ -2429,6 +2430,25 @@ build_srat(GArray *table_data, BIOSLinker *linker, 
> > MachineState *machine)
> >                                MEM_AFFINITY_ENABLED);
> >          }
> >      }
> > +
> > +    if (machine->nvdimms_state->is_enabled) {
> > +        GSList *device_list = nvdimm_get_device_list();
> > +
> > +        for (; device_list; device_list = device_list->next) {
> > +            DeviceState *dev = device_list->data;
> > +            int node = object_property_get_int(OBJECT(dev), 
> > PC_DIMM_NODE_PROP,
> > +                                               NULL);
> > +            uint64_t addr = object_property_get_uint(OBJECT(dev),
> > +                                                     PC_DIMM_ADDR_PROP, 
> > NULL);
> > +            uint64_t size = object_property_get_uint(OBJECT(dev),
> > +                                                     PC_DIMM_SIZE_PROP, 
> > NULL);
> > +
> suggest to use error_abort in getters

Yep, fixed in v2.

> 
> > +            numamem = acpi_data_push(table_data, sizeof *numamem);
> > +            build_srat_memory(numamem, addr, size, node,
> > +                              MEM_AFFINITY_ENABLED | 
> > MEM_AFFINITY_NON_VOLATILE);
> > +        }
> who is in charge of freeing device_list ?

Thanks, also fixed in v2.

> 
> > +    }
> 
> There is ARM version of build_srat(),
> I suggest to put this NVDIMM specific part in helper function within 
> hw/acpi/nvdimm.c
> and use it from both build_srat() functions.

Splitting the work out into a helper function in nvdimm.c does make
sense, and I've done that. However, looking at the arm version of
build_srat and generally in virt-acpi-build.c, I don't see any NVDIMM
support, so unless I'm mistaken, it wouldn't make sense to actually call
this from the arm version of build_srat.

I'll send a v2 with the above fixes.

> 
> > +
> >      slots = (table_data->len - numa_start) / sizeof *numamem;
> >      for (; slots < pcms->numa_nodes + 2; slots++) {
> >          numamem = acpi_data_push(table_data, sizeof *numamem);

reply via email to

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