On 27.11.2018 14:49, Marc-André Lureau wrote: > Hi > On Tue, Nov 27, 2018 at 3:11 PM Ilya Maximets <i.maxim...@samsung.com> wrote: >> >> If seals are not supported, memfd_create() will fail. >> Furthermore, there is no way to disable it in this case because >> '.seal' property is not registered. >> >> This issue leads to vhost-user-test failures on RHEL 7.2: >> >> qemu-system-x86_64: -object memory-backend-memfd,id=mem,size=2M,: \ >> failed to create memfd: Invalid argument >> >> Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> > > > This will change the default behaviour of memfd backend, and may thus > me considered a break.
This will change the default behaviour only on systems without sealing support. But current implementation is broken there anyway and does not work. > > Instead, memfd vhost-user-test should skipped (or tuned with > sealed=false if unsupported) vhost-user-test is just an example here. In fact memfd could not be used at all on system without sealing support. And there is no way to disable seals. > >> --- >> backends/hostmem-memfd.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c >> index b6836b28e5..ee39bdbde6 100644 >> --- a/backends/hostmem-memfd.c >> +++ b/backends/hostmem-memfd.c >> @@ -129,8 +129,8 @@ memfd_backend_instance_init(Object *obj) >> { >> HostMemoryBackendMemfd *m = MEMORY_BACKEND_MEMFD(obj); >> >> - /* default to sealed file */ >> - m->seal = true; >> + /* default to sealed file if supported */ >> + m->seal = qemu_memfd_check(MFD_ALLOW_SEALING); >> } >> >> static void >> -- >> 2.17.1 >> > >