From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8WS5-0004ZU-JV for qemu-devel@nongnu.org; Fri, 26 Jun 2015 12:26:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z8WS2-0008Mg-Cb for qemu-devel@nongnu.org; Fri, 26 Jun 2015 12:26:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37383) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8WS2-0008Ma-4b for qemu-devel@nongnu.org; Fri, 26 Jun 2015 12:26:02 -0400 Date: Fri, 26 Jun 2015 18:25:56 +0200 From: Andrew Jones Message-ID: <20150626162556.GD3215@hawk.localdomain> References: <1435330185-23248-1-git-send-email-marcandre.lureau@gmail.com> <1435330185-23248-31-git-send-email-marcandre.lureau@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1435330185-23248-31-git-send-email-marcandre.lureau@gmail.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 30/39] contrib: add ivshmem client and server List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?Marc-Andr=E9?= Lureau Cc: Olivier Matz , cam@cs.ualberta.ca, qemu-devel@nongnu.org, stefanha@redhat.com, David Marchand On Fri, Jun 26, 2015 at 04:49:36PM +0200, Marc-Andr=E9 Lureau wrote: > From: David Marchand >=20 > When using ivshmem devices, notifications between guests can be sent as > interrupts using a ivshmem-server (typical use described in documentati= on). > The client is provided as a debug tool. >=20 > Signed-off-by: Olivier Matz > Signed-off-by: David Marchand > Signed-off-by: Marc-Andr=E9 Lureau > [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 struct= ure > + * @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 hu= getlbfs, > + * 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