All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Jones <drjones@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@gmail.com>
Cc: Olivier Matz <olivier.matz@6wind.com>,
	cam@cs.ualberta.ca, qemu-devel@nongnu.org, stefanha@redhat.com,
	David Marchand <david.marchand@6wind.com>
Subject: Re: [Qemu-devel] [PATCH 30/39] contrib: add ivshmem client and server
Date: Fri, 26 Jun 2015 18:25:56 +0200	[thread overview]
Message-ID: <20150626162556.GD3215@hawk.localdomain> (raw)
In-Reply-To: <1435330185-23248-31-git-send-email-marcandre.lureau@gmail.com>

On Fri, Jun 26, 2015 at 04:49:36PM +0200, Marc-André Lureau wrote:
> From: David Marchand <david.marchand@6wind.com>
> 
> When using ivshmem devices, notifications between guests can be sent as
> interrupts using a ivshmem-server (typical use described in documentation).
> The client is provided as a debug tool.
> 
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> Signed-off-by: David Marchand <david.marchand@6wind.com>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
> [fix a valgrind warning and a server_close() segv, add server headers]
> ---
>  Makefile                                |   8 +
>  configure                               |   3 +
>  contrib/ivshmem-client/ivshmem-client.c | 433 ++++++++++++++++++++++++++++++++
>  contrib/ivshmem-client/ivshmem-client.h | 212 ++++++++++++++++
>  contrib/ivshmem-client/main.c           | 239 ++++++++++++++++++
>  contrib/ivshmem-server/ivshmem-server.c | 422 +++++++++++++++++++++++++++++++
>  contrib/ivshmem-server/ivshmem-server.h | 164 ++++++++++++
>  contrib/ivshmem-server/main.c           | 264 +++++++++++++++++++
>  qemu-doc.texi                           |  10 +-
>  9 files changed, 1752 insertions(+), 3 deletions(-)
>  create mode 100644 contrib/ivshmem-client/ivshmem-client.c
>  create mode 100644 contrib/ivshmem-client/ivshmem-client.h
>  create mode 100644 contrib/ivshmem-client/main.c
>  create mode 100644 contrib/ivshmem-server/ivshmem-server.c
>  create mode 100644 contrib/ivshmem-server/ivshmem-server.h
>  create mode 100644 contrib/ivshmem-server/main.c
>

(snip everything...)

> +
> +/**
> + * Initialize an ivshmem server
> + *
> + * @server:         A pointer to an uninitialized IvshmemServer structure
> + * @unix_sock_path: The pointer to the unix socket file name
> + * @shm_path:       Path to the shared memory. The path corresponds to a POSIX
> + *                  shm name. To use a real file, for instance in a hugetlbfs,
> + *                  it is possible to use /../../abspath/to/file.

This is only true with glibc < 2.19,
see glibc commit b20de2c3d9d751eb259c321426188eefc64fcbe9, "Properly
handle shm_open validation. Fixes bug 16274."

(This probably isn't the right place to bring this up, but...)

Would it make sense to turn ivshmem into a frontend for the hostmem
backend? If we do that, then we can use hugetlbfs backed memory, and
possibly get other benefits as well, right?

Thanks,
drew

  reply	other threads:[~2015-06-26 16:26 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-26 14:49 [Qemu-devel] [PATCH 00/39] ivshmem server/client, cleanups & test Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 01/39] char: add qemu_chr_free() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 02/39] msix: add VMSTATE_MSIX_TEST Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 03/39] ivhsmem: read do not accept more than sizeof(long) Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 04/39] ivshmem: fix number of bytes to push to fifo Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 05/39] ivshmem: factor out the incoming fifo handling Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 06/39] ivshmem: remove unnecessary dup() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 07/39] ivshmem: remove superflous ivshmem_attr field Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 08/39] ivshmem: remove useless doorbell field Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 09/39] ivshmem: more qdev conversion Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 10/39] ivshmem: remove last exit(1) Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 11/39] ivshmem: increase_dynamic_storage() improvements Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 12/39] ivshmem: remove useless ivshmem_update_irq() val argument Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 13/39] ivshmem: initialize max_peer to -1 Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 14/39] ivshmem: remove max_peer field Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 15/39] ivshmem: improve debug messages Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 16/39] ivshmem: improve error Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 17/39] ivshmem: print error on invalid peer id Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 18/39] ivshmem: add a warning if eventfd value is 0 Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 19/39] ivshmem: beautify a bit the code Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 20/39] ivshmem: use common return Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 21/39] ivshmem: use common is_power_of_2() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 22/39] ivshmem: migrate with VMStateDescription Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 23/39] ivshmem: shmfd can be 0 Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 24/39] ivshmem: check shm isn't already initialized Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 25/39] ivshmem: add device description Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 26/39] ivshmem: fix pci_ivshmem_exit() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 27/39] ivshmem: replace 'guest' for 'peer' appropriately Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 28/39] ivshmem: error on too many eventfd received Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 29/39] ivshmem: reset mask on device reset Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 30/39] contrib: add ivshmem client and server Marc-André Lureau
2015-06-26 16:25   ` Andrew Jones [this message]
2015-06-29 22:25     ` Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 31/39] ivshmem-client: check the number of vectors Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 32/39] ivshmem-server: use a uint16 for client ID Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 33/39] ivshmem-server: include necessary headers Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 34/39] docs: update ivshmem device spec Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 35/39] ivshmem: add check on protocol version in QEMU Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 36/39] contrib: remove unnecessary strdup() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 37/39] msix: implement read-only pba write Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 38/39] qtest: add qtest_add_abrt_handler() Marc-André Lureau
2015-06-26 14:49 ` [Qemu-devel] [PATCH 39/39] tests: Add ivshmem qtest Marc-André Lureau
2015-06-26 15:08   ` Andreas Färber
2015-06-26 15:27     ` Marc-André Lureau
2015-06-26 15:44       ` Marc-André Lureau
2015-06-26 16:05         ` Andreas Färber
2015-06-26 15:53       ` Andreas Färber
2015-06-26 16:02         ` Marc-André Lureau
2015-06-26 16:13           ` Andreas Färber
2015-07-09 14:37           ` Marc-André Lureau
2015-07-09 15:13             ` Andreas Färber

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=20150626162556.GD3215@hawk.localdomain \
    --to=drjones@redhat.com \
    --cc=cam@cs.ualberta.ca \
    --cc=david.marchand@6wind.com \
    --cc=marcandre.lureau@gmail.com \
    --cc=olivier.matz@6wind.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@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.