aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2024-02-14 16:17:00 +0100
committerMichael S. Tsirkin <mst@redhat.com>2024-03-12 17:56:55 -0400
commit67f4f663cd6179d57f3e5a558f1526c7dc8c6742 (patch)
tree3aecf932e9f7bc8ed43dacfcd82e71972ef81f11 /scripts
parent2a29022768f1777d71e26b784a264323d1914dd6 (diff)
downloadqemu-67f4f663cd6179d57f3e5a558f1526c7dc8c6742.zip
qemu-67f4f663cd6179d57f3e5a558f1526c7dc8c6742.tar.gz
qemu-67f4f663cd6179d57f3e5a558f1526c7dc8c6742.tar.bz2
libvhost-user: Dynamically remap rings after (temporarily?) removing memory regions
Currently, we try to remap all rings whenever we add a single new memory region. That doesn't quite make sense, because we already map rings when setting the ring address, and panic if that goes wrong. Likely, that handling was simply copied from set_mem_table code, where we actually have to remap all rings. Remapping all rings might require us to walk quite a lot of memory regions to perform the address translations. Ideally, we'd simply remove that remapping. However, let's be a bit careful. There might be some weird corner cases where we might temporarily remove a single memory region (e.g., resize it), that would have worked for now. Further, a ring might be located on hotplugged memory, and as the VM reboots, we might unplug that memory, to hotplug memory before resetting the ring addresses. So let's unmap affected rings as we remove a memory region, and try dynamically mapping the ring again when required. Acked-by: Raphael Norwitz <raphael@enfabrica.net> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20240214151701.29906-14-david@redhat.com> Tested-by: Mario Casquero <mcasquer@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions