All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Stefano Garzarella <sgarzare@redhat.com>
Cc: qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	qemu-block@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Eric Blake" <eblake@redhat.com>, "Coiby Xu" <Coiby.Xu@gmail.com>,
	slp@redhat.com, "Eduardo Habkost" <eduardo@habkost.net>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Raphael Norwitz" <raphael@enfabrica.net>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"David Hildenbrand" <david@redhat.com>,
	stefanha@redhat.com, gmaglione@redhat.com
Subject: Re: [PATCH 9/9] hostmem-file: support POSIX shm_open()
Date: Wed, 28 Feb 2024 13:32:17 +0100	[thread overview]
Message-ID: <874jdswyzy.fsf@pond.sub.org> (raw)
In-Reply-To: <20240228114759.44758-10-sgarzare@redhat.com> (Stefano Garzarella's message of "Wed, 28 Feb 2024 12:47:59 +0100")

Stefano Garzarella <sgarzare@redhat.com> writes:

> 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 <sgarzare@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

How would that look like?  Would it involve duplicating code?

> - 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)

Hmm.  Too much magic?  I don't know...

> Any preference/suggestion?

[...]

> diff --git a/qapi/qom.json b/qapi/qom.json
> index 2a6e49365a..bfb01b909f 100644
> --- a/qapi/qom.json
> +++ b/qapi/qom.json
> @@ -682,6 +682,9 @@
   # @mem-path: the path to either a shared memory or huge page
   #     filesystem mount

Does this need adjustment?

[...]

>  #       writable RAM instead of ROM, and want to set this property to 'off'.
>  #       (default: auto, since 8.2)
>  #
> +# @shm: if true, shm_open(3) is used to create/open POSIX shared memory
> +#       object; if false, an open(2) is used. (default: false) (since 9.0)
> +#

Please format like this for consistency:

# @shm: if true, shm_open(3) is used to create/open POSIX shared memory
#     object; if false, an open(2) is used (default: false) (since 9.0)

>  # Since: 2.1
>  ##
>  { 'struct': 'MemoryBackendFileProperties',
> @@ -692,6 +695,7 @@
>              'mem-path': 'str',
>              '*pmem': { 'type': 'bool', 'if': 'CONFIG_LIBPMEM' },
>              '*readonly': 'bool',
> +            '*shm': 'bool',
>              '*rom': 'OnOffAuto' } }
>  
>  ##

[...]



  parent reply	other threads:[~2024-02-28 12:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28 11:47 [PATCH 0/9] vhost-user: support any POSIX system (tested on macOS and FreeBSD) Stefano Garzarella
2024-02-28 11:47 ` [PATCH 1/9] libvhost-user: set msg.msg_control to NULL when it is empty Stefano Garzarella
2024-02-28 11:47 ` [PATCH 2/9] libvhost-user: fail vu_message_write() if sendmsg() is failing Stefano Garzarella
2024-02-28 11:47 ` [PATCH 3/9] libvhost-user: mask F_INFLIGHT_SHMFD if memfd is not supported Stefano Garzarella
2024-02-28 11:47 ` [PATCH 4/9] vhost-user-server: don't abort if we can't set fd non-blocking Stefano Garzarella
2024-02-28 11:47 ` [PATCH 5/9] contrib/vhost-user-blk: fix bind() using the right size of the address Stefano Garzarella
2024-02-28 11:47 ` [PATCH 6/9] vhost-user: enable frontends on any POSIX system Stefano Garzarella
2024-02-28 11:47 ` [PATCH 7/9] libvhost-user: enable it " Stefano Garzarella
2024-02-28 11:47 ` [PATCH 8/9] contrib/vhost-user-blk: enabled " Stefano Garzarella
2024-02-28 11:47 ` [PATCH 9/9] hostmem-file: support POSIX shm_open() Stefano Garzarella
2024-02-28 12:01   ` David Hildenbrand
2024-02-29  8:46     ` Stefano Garzarella
2024-02-28 12:08   ` Daniel P. Berrangé
2024-02-29  8:49     ` Stefano Garzarella
2024-02-28 12:32   ` Markus Armbruster [this message]
2024-02-29  8:57     ` Stefano Garzarella
2024-02-29 10:28       ` Markus Armbruster
2024-02-29 11:01         ` Stefano Garzarella
2024-02-28 11:51 ` [PATCH 0/9] vhost-user: support any POSIX system (tested on macOS and FreeBSD) Stefano Garzarella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874jdswyzy.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=Coiby.Xu@gmail.com \
    --cc=berrange@redhat.com \
    --cc=david@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=gmaglione@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=raphael@enfabrica.net \
    --cc=sgarzare@redhat.com \
    --cc=slp@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.