From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: victork@redhat.com, mst@redhat.com,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [RFC 0/6] Start a contrib/libvhost-user
Date: Sat, 9 Apr 2016 16:19:01 +0200 [thread overview]
Message-ID: <1460211547-9264-1-git-send-email-marcandre.lureau@redhat.com> (raw)
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Hi
vhost-user & virtio are not so simple and evolve regularly. There
isn't a reference code that would help you get started either. And
backends duplicate most of the effort.
Furthermore, due to usage of ancillary data, shared memory, eventfd,
atomics, it is not so simple to implement in other languages than C
either (even rust still lacks socket ancillary data support). Having a
library doing the low-level parts could eventually help to reach other
languages (this guided some decisions, such as being able to override
message handling)
I found it would help me to experiment with new usages of
libvhost-user (with other devices than network for example) if qemu
would provide such "reference" library. vhost-user-bridge was the most
complete attempt in qemu, but it lacked some abstraction and efficient
handling of the virt queues.
I propose to provide such library based on virtio.c implementation and
vhost-user-bridge socket handling. My hope is that at some point the
library would be complete and stable enough that it could become a
standalone project, but for now it makes more sense to propose it in
qemu/contrib.
Comments welcome!
Marc-André Lureau (6):
vubr: remove false comment
vubr: remove unnecessary dispatcher_remove
vubr: indicate peer disconnected
vubr: do not accept more than one connection
contrib: add libvhost-user
test/vubr: use contrib/libvhost-user
Makefile.objs | 1 +
contrib/libvhost-user/Makefile.objs | 1 +
contrib/libvhost-user/libvhost-user.c | 1401 +++++++++++++++++++++++++++++++++
contrib/libvhost-user/libvhost-user.h | 264 +++++++
tests/Makefile | 2 +-
tests/vhost-user-bridge.c | 1173 ++++++---------------------
6 files changed, 1891 insertions(+), 951 deletions(-)
create mode 100644 contrib/libvhost-user/Makefile.objs
create mode 100644 contrib/libvhost-user/libvhost-user.c
create mode 100644 contrib/libvhost-user/libvhost-user.h
--
2.5.5
next reply other threads:[~2016-04-09 14:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-09 14:19 marcandre.lureau [this message]
2016-04-09 14:19 ` [Qemu-devel] [RFC 1/6] vubr: remove false comment marcandre.lureau
2016-04-09 14:19 ` [Qemu-devel] [RFC 2/6] vubr: remove unnecessary dispatcher_remove marcandre.lureau
2016-04-09 14:19 ` [Qemu-devel] [RFC 3/6] vubr: indicate peer disconnected marcandre.lureau
2016-04-09 14:19 ` [Qemu-devel] [RFC 4/6] vubr: do not accept more than one connection marcandre.lureau
2016-04-09 14:19 ` [Qemu-devel] [RFC 5/6] contrib: add libvhost-user marcandre.lureau
2016-04-09 14:19 ` [Qemu-devel] [RFC 6/6] test/vubr: use contrib/libvhost-user marcandre.lureau
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=1460211547-9264-1-git-send-email-marcandre.lureau@redhat.com \
--to=marcandre.lureau@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=victork@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).