Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 2cc0e2e8140f43ccc6aced6e47c9c2db15ce2330 https://github.com/qemu/qemu/commit/2cc0e2e8140f43ccc6aced6e47c9c2db15ce2330 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018)
Changed paths: M hw/i386/acpi-build.c M hw/mem/Makefile.objs A hw/mem/memory-device.c M hw/mem/pc-dimm.c M hw/ppc/spapr.c M hw/ppc/spapr_hcall.c A include/hw/mem/memory-device.h M include/hw/mem/pc-dimm.h M numa.c M qmp.c M stubs/Makefile.objs A stubs/qmp_memory_device.c R stubs/qmp_pc_dimm.c Log Message: ----------- pc-dimm: factor out MemoryDevice interface On the qmp level, we already have the concept of memory devices: "query-memory-devices" Right now, we only support NVDIMM and PCDIMM. We want to map other devices later into the address space of the guest. Such device could e.g. be virtio devices. These devices will have a guest memory range assigned but won't be exposed via e.g. ACPI. We want to make them look like memory device, but not glued to pc-dimm. Especially, it will not always be possible to have TYPE_PC_DIMM as a parent class (e.g. virtio devices). Let's use an interface instead. As a first part, convert handling of - qmp_pc_dimm_device_list - get_plugged_memory_size to our new model. plug/unplug stuff etc. will follow later. A memory device will have to provide the following functions: - get_addr(): Necessary, as the property "addr" can e.g. not be used for virtio devices (already defined). - get_plugged_size(): The amount this device offers to the guest as of now. - get_region_size(): Because this can later on be bigger than the plugged size. - fill_device_info(): Fill MemoryDeviceInfo, e.g. for qmp. Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-2-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: b0c14ec4efe912ae6f14a4802574f7b6b6db0648 https://github.com/qemu/qemu/commit/b0c14ec4efe912ae6f14a4802574f7b6b6db0648 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/i386/acpi-build.c M hw/i386/pc.c M hw/ppc/spapr.c M hw/ppc/spapr_hcall.c M hw/ppc/spapr_rtas_ddw.c M include/hw/boards.h M include/hw/i386/pc.h M include/hw/mem/pc-dimm.h M include/hw/ppc/spapr.h Log Message: ----------- machine: make MemoryHotplugState accessible via the machine Let's allow to query the MemoryHotplugState directly from the machine. If the pointer is NULL, the machine does not support memory devices. If the pointer is !NULL, the machine supports memory devices and the data structure contains information about the applicable physical guest address space region. This allows us to generically detect if a certain machine has support for memory devices, and to generically manage it (find free address range, plug/unplug a memory region). We will rename "MemoryHotplugState" to something more meaningful ("DeviceMemory") after we completed factoring out the pc-dimm code into MemoryDevice code. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-3-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> [ehabkost: rebased series, solved conflicts at spapr.c] [ehabkost: squashed fix to use g_malloc0()] Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: acc7fa17e6fe96bd68ad9af04fde5091383ef25e https://github.com/qemu/qemu/commit/acc7fa17e6fe96bd68ad9af04fde5091383ef25e Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/i386/pc.c M hw/mem/pc-dimm.c M hw/ppc/spapr.c M include/hw/mem/pc-dimm.h Log Message: ----------- pc-dimm: no need to pass the memory region We can just query it ourselves. When unplugging, we should always be able to the region (as it was previously plugged). E.g. PPC already assumed that and used &error_abort. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-4-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: bd6c3e4a4975ee1e5cadbc1826af9bd0ca0954c2 https://github.com/qemu/qemu/commit/bd6c3e4a4975ee1e5cadbc1826af9bd0ca0954c2 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/i386/pc.c M hw/mem/pc-dimm.c M hw/ppc/spapr.c M include/hw/mem/pc-dimm.h Log Message: ----------- pc-dimm: pass in the machine and to the MemoryHotplugState We use the machine internally either way, so let's just pass it in then. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-5-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: bb0831bdf45a61c83fa1def44ae391260ce2662d https://github.com/qemu/qemu/commit/bb0831bdf45a61c83fa1def44ae391260ce2662d Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/mem/memory-device.c M hw/mem/pc-dimm.c M include/hw/mem/memory-device.h M include/hw/mem/pc-dimm.h Log Message: ----------- pc-dimm: factor out address search into MemoryDevice code This mainly moves code, but does a handfull of optimizations: - We pass the machine instead of the address space properties - We check the hinted address directly and handle fragmented memory better - We make the search independent of pc-dimm Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-6-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: 1b6d6af21bd614d61b55a28177299a5c93b95cd9 https://github.com/qemu/qemu/commit/1b6d6af21bd614d61b55a28177299a5c93b95cd9 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/mem/memory-device.c M hw/mem/pc-dimm.c M include/hw/mem/pc-dimm.h Log Message: ----------- pc-dimm: factor out capacity and slot checks into MemoryDevice Move the checks into memory_device_get_free_addr(). This will check before doing any calculations if we have KVM/vhost slots left and if the total region size would be exceeded. Of course, while at it, make it independent of pc-dimm code. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-7-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: 18d11dc910ca2a292b3f12c6a4a7c927b0f226f4 https://github.com/qemu/qemu/commit/18d11dc910ca2a292b3f12c6a4a7c927b0f226f4 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/mem/memory-device.c M hw/mem/pc-dimm.c M include/hw/mem/memory-device.h Log Message: ----------- pc-dimm: move actual plug/unplug of a memory region to MemoryDevice Registering the memory region for migration has do be done by the owner. There could be cases, where we don't want to migrate the memory. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-8-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: e017da370b3e87a3041b66092de2eb2318d28a6b https://github.com/qemu/qemu/commit/e017da370b3e87a3041b66092de2eb2318d28a6b Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/ppc/spapr_hcall.c M hw/ppc/spapr_rtas_ddw.c M include/hw/boards.h Log Message: ----------- machine: rename MemoryHotplugState to DeviceMemoryState Rename it to better match the new terminology. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-9-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: f2ffbe2b7dd05a563fe81066440629824192b15a https://github.com/qemu/qemu/commit/f2ffbe2b7dd05a563fe81066440629824192b15a Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/i386/acpi-build.c M hw/i386/pc.c M include/hw/i386/pc.h Log Message: ----------- pc: rename "hotplug memory" terminology to "device memory" Let's make it clear that we are dealing with device memory. That it can be used for memory hotplug is just a special case. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-10-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: 0c9269a52d79aeebcfade97778ee937ab480a232 https://github.com/qemu/qemu/commit/0c9269a52d79aeebcfade97778ee937ab480a232 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M hw/ppc/spapr.c M include/hw/ppc/spapr.h Log Message: ----------- spapr: rename "hotplug memory" terminology to "device memory" Let's make it clear at relevant places that we are dealing with device memory. That it can be used for memory hotplug is just a special case. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-11-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> [ehabkost: rebased series, solved conflicts at spapr.c] Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: 951f2269af2d1f559d3949c45659c65297946106 https://github.com/qemu/qemu/commit/951f2269af2d1f559d3949c45659c65297946106 Author: David Hildenbrand <da...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M vl.c Log Message: ----------- vl: allow 'maxmem' without 'slot' We will be able to have memory devices (e.g. virtio) not requiring the slot parameter (e.g. not exposed via ACPI). We still need the maxmem parameter to setup a proper memory region for device memory. And some architectures (e.g. s390x) will have to set up the maximum possible guest address space size based on the maxmem parameter. As far as I can see, all code (pc.c,spapr.c,ACPI code) should handle !slots just fine, even though maxmem is set. Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20180423165126.15441-12-da...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: b40dffdec60c2dbe54806576faa5cb85227586d1 https://github.com/qemu/qemu/commit/b40dffdec60c2dbe54806576faa5cb85227586d1 Author: Thomas Huth <th...@redhat.com> Date: 2018-05-07 (Mon, 07 May 2018) Changed paths: M scripts/device-crash-test Log Message: ----------- scripts/device-crash-test: Removed fixed CAN entries The CAN device crashes have been fixed with the commit 089eac81e1d34d202471c0a023284f47f4c5f00e already. Signed-off-by: Thomas Huth <th...@redhat.com> Message-Id: <1523900489-25950-1-git-send-email-th...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Commit: cc8f8ba754bba17eea9791d67b572eb26e30b4ce https://github.com/qemu/qemu/commit/cc8f8ba754bba17eea9791d67b572eb26e30b4ce Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2018-05-08 (Tue, 08 May 2018) Changed paths: M hw/i386/acpi-build.c M hw/i386/pc.c M hw/mem/Makefile.objs A hw/mem/memory-device.c M hw/mem/pc-dimm.c M hw/ppc/spapr.c M hw/ppc/spapr_hcall.c M hw/ppc/spapr_rtas_ddw.c M include/hw/boards.h M include/hw/i386/pc.h A include/hw/mem/memory-device.h M include/hw/mem/pc-dimm.h M include/hw/ppc/spapr.h M numa.c M qmp.c M scripts/device-crash-test M stubs/Makefile.objs A stubs/qmp_memory_device.c R stubs/qmp_pc_dimm.c M vl.c Log Message: ----------- Merge remote-tracking branch 'remotes/ehabkost/tags/machine-next-pull-request' into staging Machine queue, 2018-05-07 * pc-dimm: factor out MemoryDevice (virtio-pmem and virtio-mem will make use of the new abstraction later) * scripts/device-crash-test: Removed fixed CAN entries # gpg: Signature made Mon 07 May 2018 18:01:42 BST # gpg: using RSA key 2807936F984DC5A6 # gpg: Good signature from "Eduardo Habkost <ehabk...@redhat.com>" # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6 * remotes/ehabkost/tags/machine-next-pull-request: scripts/device-crash-test: Removed fixed CAN entries vl: allow 'maxmem' without 'slot' spapr: rename "hotplug memory" terminology to "device memory" pc: rename "hotplug memory" terminology to "device memory" machine: rename MemoryHotplugState to DeviceMemoryState pc-dimm: move actual plug/unplug of a memory region to MemoryDevice pc-dimm: factor out capacity and slot checks into MemoryDevice pc-dimm: factor out address search into MemoryDevice code pc-dimm: pass in the machine and to the MemoryHotplugState pc-dimm: no need to pass the memory region machine: make MemoryHotplugState accessible via the machine pc-dimm: factor out MemoryDevice interface Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/d01beac177d4...cc8f8ba754bb **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.