On Wed, Feb 28, 2024 at 12:47:59PM +0100, Stefano Garzarella wrote: > Add a new `shm` bool option for `-object memory-backend-file`. > > When this option is set to true, the POSIX shm_open(3) is used instead > of open(2). > > So a file will not be created in the filesystem, but a "POSIX shared > memory object" will be instantiated. In Linux this turns into a file > in /dev/shm, but in other OSes this may not happen (for example in > macOS or FreeBSD nothing is shown in any filesystem). > > This new feature is useful when we need to share guest memory with > another process (e.g. vhost-user backend), but we don't have > memfd_create() or any special filesystems (e.g. /dev/shm) available > as in macOS. > > Signed-off-by: Stefano Garzarella <sgarz...@redhat.com> > --- > I am not sure this is the best way to support shm_open() in QEMU. > > Other solutions I had in mind were: > > - create a new memory-backend-shm > > - extend memory-backend-memfd to use shm_open() on systems where memfd is > not available (problem: shm_open wants a name to assign to the object, but > we can do a workaround by using a random name and do the unlink right away)
IMHO, create a new memory-backend-shm, don't overload memory-backend-memfd, as this lets users choose between shm & memfd, even on Linux. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|