
On 05.01.24 13:40, Peter Krempa wrote:
On Fri, Jan 05, 2024 at 13:33:32 +0100, Michal Privoznik wrote:
Introduced in v8.2.0-rc0~74^2~2, QEMU now allows setting .dynamic-memslots attribute for virtio-mem-pci devices. When turned on, it allows memory exposed to guest to be split into multiple memslots and thus smaller memory footprint (see the original commit for detailed explanation).
Therefore, introduce new <target/> attribute which will control that QEMU knob.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/formatdomain.rst | 6 ++++++ src/conf/domain_conf.c | 18 +++++++++++++++++- src/conf/domain_conf.h | 1 + src/conf/schemas/domaincommon.rng | 5 +++++ .../memory-hotplug-virtio-mem.xml | 2 +- 5 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 96e03a3807..57974de9f4 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -8395,6 +8395,12 @@ Example: usage of the memory devices The ``node`` subelement configures the guest NUMA node to attach the memory to. The element shall be used only if the guest has NUMA nodes configured.
+ For ``virtio-mem`` optional attribute ``dynamicMemslots`` can be specified + (accepted values "yes"/"no") which allows hypervisor to spread memory into + multiple memory slots (allocate them dynamically based on the amount of + memory exposed to the guest), resulting in smaller memory footprint. + :since:`Since 10.0.0 and QEMU 8.2.0`
Is there any drawback in always setting 'yes'? (modulo cases when it would not work, obviously)
In combination with some vhost devices (especially vhost-user), starting QEMU might fail until these devices support more memslots. There is ongoing work to improve these vhost-user devices. To make these setups temporarily work, one would have to manually set "dynamic-memslots=off" here, which is not too bad I guess. Besides that, I don't think there is a real drawback -- there are mostly only benefits of having it :) I'm actually hoping that we can default-enable it, at least in RHEL soon. Maybe we can default-enable it right away and document that vhost-user devices will require it to be manually disabled until they support more memslots? -- Cheers, David / dhildenb