On 27.11.2018 15:00, Marc-André Lureau wrote: > Hi > On Tue, Nov 27, 2018 at 3:56 PM Ilya Maximets <i.maxim...@samsung.com> wrote: >> >> 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. > > which system supports memfd without sealing?
RHEL 7.2. kernel version 3.10.0-327.el7.x86_64 > >> >>> >>>> --- >>>> 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 >>>> >>> >>> >> > >