[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 06/38] pc-dimm: add vhost slots limit check before co
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 06/38] pc-dimm: add vhost slots limit check before commiting to hotplug |
Date: |
Wed, 21 Oct 2015 13:26:45 +0300 |
From: Igor Mammedov <address@hidden>
it allows safely cancel memory hotplug if vhost backend
doesn't support necessary amount of memory slots and prevents
QEMU crashing in vhost due to hitting vhost limit on amount
of supported memory ranges.
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/mem/pc-dimm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index 506fe0d..2bae994 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -25,6 +25,7 @@
#include "sysemu/numa.h"
#include "sysemu/kvm.h"
#include "trace.h"
+#include "hw/virtio/vhost.h"
typedef struct pc_dimms_capacity {
uint64_t size;
@@ -96,6 +97,12 @@ void pc_dimm_memory_plug(DeviceState *dev,
MemoryHotplugState *hpms,
goto out;
}
+ if (!vhost_has_free_slot()) {
+ error_setg(&local_err, "a used vhost backend has no free"
+ " memory slots left");
+ goto out;
+ }
+
memory_region_add_subregion(&hpms->mr, addr - hpms->base, mr);
vmstate_register_ram(mr, dev);
numa_set_mem_node_id(addr, memory_region_size(mr), dimm->node);
--
MST
- [Qemu-devel] [PULL 00/38] vhost, pc, virtio features, fixes, cleanups, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 01/38] intel_iommu: Add support for translation for devices behind bridges, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 02/38] exec: factor out duplicate mmap code, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 03/38] net: don't set native endianness, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 04/38] tests: re-enable vhost-user-test, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 06/38] pc-dimm: add vhost slots limit check before commiting to hotplug,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 07/38] vhost: fail backend intialization early, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 05/38] vhost: add vhost_has_free_slot() interface, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 08/38] virtio: add some migration doc, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 09/38] configure: probe for memfd, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 11/38] build-sys: split util-obj- on multi-lines, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 12/38] util: add linux-only memfd fallback, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 13/38] util: add memfd helpers, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 14/38] util: add fallback for qemu_memfd_alloc(), Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 15/38] vhost: document log resizing, Michael S. Tsirkin, 2015/10/21
- [Qemu-devel] [PULL 16/38] vhost: add vhost_set_log_base op, Michael S. Tsirkin, 2015/10/21