]> xenbits.xensource.com Git - qemu-xen.git/commit
memory-device,vhost: Support memory devices that dynamically consume memslots
authorDavid Hildenbrand <david@redhat.com>
Tue, 26 Sep 2023 18:57:29 +0000 (20:57 +0200)
committerDavid Hildenbrand <david@redhat.com>
Thu, 12 Oct 2023 12:15:22 +0000 (14:15 +0200)
commit766aa0a654d887ad8fed2f116c84a89e20102c14
tree291cac1b0357ffb9fc0bd73223ff669c83899289
parentf9716f4b0d6eaee5d0b1ccf428a102e0c148fa30
memory-device,vhost: Support memory devices that dynamically consume memslots

We want to support memory devices that have a dynamically managed memory
region container as device memory region. This device memory region maps
multiple RAM memory subregions (e.g., aliases to the same RAM memory
region), whereby these subregions can be (un)mapped on demand.

Each RAM subregion will consume a memslot in KVM and vhost, resulting in
such a new device consuming memslots dynamically, and initially usually
0. We already track the number of used vs. required memslots for all
memslots. From that, we can derive the number of reserved memslots that
must not be used otherwise.

The target use case is virtio-mem and the hyper-v balloon, which will
dynamically map aliases to RAM memory region into their device memory
region container.

Properly document what's supported and what's not and extend the vhost
memslot check accordingly.

Message-ID: <20230926185738.277351-10-david@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
hw/mem/memory-device.c
hw/virtio/vhost.c
include/hw/mem/memory-device.h
stubs/memory_device.c