qemu/subprojects
David Hildenbrand 0fa6344c90 libvhost-user: Bump up VHOST_USER_MAX_RAM_SLOTS to 509
Let's support up to 509 mem slots, just like vhost in the kernel usually
does and the rust vhost-user implementation recently [1] started doing.
This is required to properly support memory hotplug, either using
multiple DIMMs (ACPI supports up to 256) or using virtio-mem.

The 509 used to be the KVM limit, it supported 512, but 3 were
used for internal purposes. Currently, KVM supports more than 512, but
it usually doesn't make use of more than ~260 (i.e., 256 DIMMs + boot
memory), except when other memory devices like PCI devices with BARs are
used. So, 509 seems to work well for vhost in the kernel.

Details can be found in the QEMU change that made virtio-mem consume
up to 256 mem slots across all virtio-mem devices. [2]

509 mem slots implies 509 VMAs/mappings in the worst case (even though,
in practice with virtio-mem we won't be seeing more than ~260 in most
setups).

With max_map_count under Linux defaulting to 64k, 509 mem slots
still correspond to less than 1% of the maximum number of mappings.
There are plenty left for the application to consume.

[1] https://github.com/rust-vmm/vhost/pull/224
[2] https://lore.kernel.org/all/20230926185738.277351-1-david@redhat.com/

Reviewed-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-3-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>
2024-03-12 17:56:55 -04:00
..
libvduse libvduse: Fix compiler warning with -Wshadow=local 2023-10-12 14:09:58 +02:00
libvhost-user libvhost-user: Bump up VHOST_USER_MAX_RAM_SLOTS to 509 2024-03-12 17:56:55 -04:00
packagefiles meson: subprojects: replace berkeley-{soft,test}float-3 with wraps 2023-06-06 16:30:01 +02:00
.gitignore meson: subprojects: replace berkeley-{soft,test}float-3 with wraps 2023-06-06 16:30:01 +02:00
berkeley-softfloat-3.wrap subprojects: Use the correct .git suffix in the repository URLs 2023-09-21 11:31:18 +03:00
berkeley-testfloat-3.wrap subprojects: Use the correct .git suffix in the repository URLs 2023-09-21 11:31:18 +03:00
dtc.wrap meson: subprojects: replace submodules with wrap files 2023-06-06 16:30:01 +02:00
keycodemapdb.wrap meson: subprojects: replace submodules with wrap files 2023-06-06 16:30:01 +02:00
libblkio.wrap subprojects: add wrap file for libblkio 2023-09-07 13:32:37 +02:00
libvfio-user.wrap meson: subprojects: replace submodules with wrap files 2023-06-06 16:30:01 +02:00
slirp.wrap subprojects: Use the correct .git suffix in the repository URLs 2023-09-21 11:31:18 +03:00