On Mon, Jun 29, 2015 at 02:32:09PM +0200, Igor Mammedov wrote: > On Mon, 29 Jun 2015 13:50:21 +0530 > Bharata B Rao <bhar...@linux.vnet.ibm.com> wrote: > > > Hi, > > > > Here is the v4 of the patchset that refactors pc_dimm_plug and adds > > an API to lookup NUMA node by address. > > > > - Refactoring pc_dimm_plug() helps other architectures like PowerPC > > to make use of common code. > > - API to lookup NUMA node id by address is required to support memory > > hotplug on PowerPC sPAPR guests. > > > > In addition to pc_dimm_plug() reorganization and NUMA node lookup > > API, this patchset also carries a patch to abort when > > HotplugHandlerClass::plug() fails for pc machine. > > > > The patchset that adds memory hotplug support to PowerPC sPAPR which > > was posted at > > http://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg06574.html > > depends on this patchset. > > > > Changes in v4: > > ------------- > > - Ensure memory range information is stored in node_info[0] for > > non-NUMA configurations. (5/6) > > - Ensure numa_get_node() API looks up the given address in node 0 > > for non-NUMA configurations. (6/6) > > > > In addition the following changes based on Igor's review: > > > > - hhc->plug() shouldn't fail for PC arch, hence don't try to recover > > by calling pc_dimm_memory_unplug(). (2/6) > > - Use pc_dimm_memory_unplug() from pc_dimm_unplug(). (2/6) > > - Add a patch to use error_abort in hhc->plug(). (3/6) > > - Store exact address range (start, end and not end+1) in numa_info > > and modify the lookup logic accordingly. (4/6, 6/6) > > > > v3: http://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg06768.html > > v2: https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg05157.html > > v1: https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg03212.html > > v0: https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg01078.html > > > > Bharata B Rao (6): > > pc,pc-dimm: Extract hotplug related fields in PCMachineState to a > > structure > > pc,pc-dimm: Factor out reusable parts in pc_dimm_plug to a separate > > routine > > pc: Abort if HotplugHandlerClass::plug() fails > > numa,pc-dimm: Store pc-dimm memory information in numa_info > > numa: Store boot memory address range in node_info > > numa: API to lookup NUMA node by address > > > > hw/i386/acpi-build.c | 2 +- > > hw/i386/pc.c | 84 +++++++------------------------------------ > > hw/mem/pc-dimm.c | 84 +++++++++++++++++++++++++++++++++++++++++++ > > include/hw/i386/pc.h | 7 ++-- > > include/hw/mem/pc-dimm.h | 15 ++++++++ > > include/sysemu/numa.h | 11 ++++++ > > numa.c | 94 > > ++++++++++++++++++++++++++++++++++++++++++++++++ > > 7 files changed, 219 insertions(+), 78 deletions(-) > > > > tested wrt PC memory hotplug, hence for series > > Tested-by: Igor Mammedov <imamm...@redhat.com>
Thanks a lot. I have tested this with out-of-the-tree PowerPC sPAPR memory hotplug patchset for scenarios like hotplugging memory to non-NUMA guest, single and multiple NUMA node guest and guest with memory-less nodes. Regards, Bharata.