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.
Kind regards,
Pavel Fedin
Senior Engineer
Samsung Electronics Research center Russia