[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 4/6] virtio-mem: Fail if a memory backend with "prealloc=on" i
From: |
David Hildenbrand |
Subject: |
[PATCH v3 4/6] virtio-mem: Fail if a memory backend with "prealloc=on" is specified |
Date: |
Thu, 22 Dec 2022 12:02:13 +0100 |
"prealloc=on" for the memory backend does not work as expected, as
virtio-mem will simply discard all preallocated memory immediately again.
In the best case, it's an expensive NOP. In the worst case, it's an
unexpected allocation error.
Instead, "prealloc=on" should be specified for the virtio-mem device only,
such that virtio-mem will try preallocating memory before plugging
memory dynamically to the guest. Fail if such a memory backend is
provided.
Tested-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
hw/virtio/virtio-mem.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index 5c22c4b876..e0e908d392 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -772,6 +772,12 @@ static void virtio_mem_device_realize(DeviceState *dev,
Error **errp)
error_setg(errp, "'%s' property specifies an unsupported memdev",
VIRTIO_MEM_MEMDEV_PROP);
return;
+ } else if (vmem->memdev->prealloc) {
+ error_setg(errp, "'%s' property specifies a memdev with preallocation"
+ " enabled: %s. Instead, specify 'prealloc=on' for the"
+ " virtio-mem device. ", VIRTIO_MEM_MEMDEV_PROP,
+ object_get_canonical_path_component(OBJECT(vmem->memdev)));
+ return;
}
if ((nb_numa_nodes && vmem->node >= nb_numa_nodes) ||
--
2.38.1
- [PATCH v3 0/6] virtio-mem: Handle preallocation with migration, David Hildenbrand, 2022/12/22
- [PATCH v3 1/6] migration: Allow immutable device state to be migrated early (i.e., before RAM), David Hildenbrand, 2022/12/22
- [PATCH v3 3/6] migration: Factor out checks for advised and listening incomming postcopy, David Hildenbrand, 2022/12/22
- [PATCH v3 2/6] migration/vmstate: Introduce VMSTATE_WITH_TMP_TEST() and VMSTATE_BITMAP_TEST(), David Hildenbrand, 2022/12/22
- [PATCH v3 4/6] virtio-mem: Fail if a memory backend with "prealloc=on" is specified,
David Hildenbrand <=
- [PATCH v3 5/6] virtio-mem: Migrate bitmap, size and sanity checks early, David Hildenbrand, 2022/12/22
- [PATCH v3 6/6] virtio-mem: Proper support for preallocation with migration, David Hildenbrand, 2022/12/22