[libvirt] [RFC] vhost-user + shared memory + NUMA

Daniel P. Berrange berrange at redhat.com
Thu Feb 11 10:37:29 UTC 2016

On Thu, Feb 11, 2016 at 01:28:47PM +0300, Pavel Fedin wrote:
>  Hello!
>  vhost-user has a small limitation: guest memory must be shared. However, this simple requirement is satisfied by Libvirt only in
> very complicated case:
> 1. We have to specify NUMA configuration, because we can have "shared" attribute only for node descriptors inside "NUMA" section.
> 2. We have to specify huge page size, because memory-backend-file is used only in this case.
>  Isn't it a problem? In order to do a simple thing (use vhost-user) we have to add two more quote unobvious things, making the whole
> stuff significantly more complicated. This creates even more problems on the level above, for example in order to get OpenStack
> working with userspace networking, we have to edit all flavors and rebuild all instances. And no single documentation mentions it.
>  Shouldn't Libvirt simply detect usage of vhost-user, and build some minimal configuration with shared memory? For example, it could
> be memory-backend-file on /dev/mem.
>  If the community agrees that it's a good idea, improving the usability, i can propose patches.

Historically QEMU had a pointless check on the path passed in, to enforce
that it was only hugetlbfs, so could not just pass in a regular tmpfs
file. I think we removed that in QEMU 2.5. I think it is a valid enhance
<memoryBacking> to allow specification of "shared" memory backing which
would be mapping to a regular tmpfs.

I don't think we should magically do anything based on existance of
vhost-user though - changes in way the guest memory is allocated should
always require explicit user configuration.

We could however report an error VIR_ERR_CONFIG_UNSUPPORTED if the user
provided a vhost-user device and forgot to request shared memory, given
that its an unusable combination.

|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

More information about the libvir-list mailing list