Add a new Linux-specific memory backend, similar to hostmem-file, except that it doesn't need file path. It also try to enforce memory sealing if available. It is thus slightly easier and secure, and is compatible with transparent huge-pages since Linux 4.8.
Since Linux 4.14, memfd supports explicit hugetlb, however without sealing. v5: - add memfd hugetlb support - add seal and hugeltb options to memfd memory backend - update qemu-option to explain sharing works with vhost-user for now - rebased, misc code changes v4: - rebased, now that preliminary patches are merged v3: - make vhost-user-test use memfd only if possible - rebased v1->v2: - make it linux-specific - minor changes and commit message tweaks Marc-André Lureau (6): memfd: split qemu_memfd_alloc() memfd: remove needless include memfd: add error argument, instead of perror() memfd: add hugetlb support Add memfd based hostmem tests: use memfd in vhost-user-test include/qemu/memfd.h | 4 +- backends/hostmem-memfd.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++ hw/virtio/vhost.c | 8 ++- tests/vhost-user-test.c | 70 ++++++++++++++++---------- util/memfd.c | 101 ++++++++++++++++++++++---------------- backends/Makefile.objs | 2 + qemu-options.hx | 15 ++++++ 7 files changed, 256 insertions(+), 68 deletions(-) create mode 100644 backends/hostmem-memfd.c -- 2.15.0.rc0.40.gaefcc5f6f
