Right now we can only map PCDIMM/NVDIMM into guest address space. In the future, we might want to do the same for virtio devices - e.g. virtio-pmem or virtio-mem. Especially, they should be able to live side by side to each other.
E.g. the virto based memory devices regions will not be exposed via ACPI and friends. They will be detected just like other virtio devices and indicate the applicable memory region. This makes it possible to also use them on architectures without memory device detection support (e.g. s390x). Let's factor out the memory device code into a MemoryDevice interface. v2 -> v3: - "pc-dimm: factor out MemoryDevice interface" --> Lookup both classes when comparing (David Gibson) v1 -> v2: - Fix compile issues on ppc (still untested ) David Hildenbrand (3): pc-dimm: factor out MemoryDevice interface machine: make MemoryHotplugState accessible via the machine pc-dimm: factor out address space logic into MemoryDevice code hw/i386/acpi-build.c | 3 +- hw/i386/pc.c | 24 ++- hw/mem/Makefile.objs | 1 + hw/mem/memory-device.c | 282 +++++++++++++++++++++++++ hw/mem/pc-dimm.c | 304 +++++++-------------------- hw/ppc/spapr.c | 24 ++- hw/ppc/spapr_hcall.c | 1 + include/hw/boards.h | 16 ++ include/hw/mem/memory-device.h | 48 +++++ include/hw/mem/pc-dimm.h | 26 +-- numa.c | 3 +- qmp.c | 4 +- stubs/Makefile.objs | 2 +- stubs/{qmp_pc_dimm.c => qmp_memory_device.c} | 4 +- 14 files changed, 465 insertions(+), 277 deletions(-) create mode 100644 hw/mem/memory-device.c create mode 100644 include/hw/mem/memory-device.h rename stubs/{qmp_pc_dimm.c => qmp_memory_device.c} (61%) -- 2.14.3