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(-) -- 2.1.0