qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/6] Start a contrib/libvhost-user
@ 2016-06-04 21:05 marcandre.lureau
  2016-06-04 21:05 ` [Qemu-devel] [PATCH 1/6] vubr: remove false comment marcandre.lureau
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: marcandre.lureau @ 2016-06-04 21:05 UTC (permalink / raw)
  To: qemu-devel; +Cc: victork, mst, Marc-André Lureau

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
the 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!

rfc->v1:
- add vu_gpa_to_va()
- fix indirect descriptors handling
- fix notification
- more error handling
- disable debugging

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                              |    1 +
 Makefile.objs                         |    1 +
 contrib/libvhost-user/Makefile.objs   |    1 +
 contrib/libvhost-user/libvhost-user.c | 1429 +++++++++++++++++++++++++++++++++
 contrib/libvhost-user/libvhost-user.h |  270 +++++++
 tests/Makefile                        |    2 +-
 tests/vhost-user-bridge.c             | 1173 +++++----------------------
 7 files changed, 1926 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.7.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-07-13 13:16 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-04 21:05 [Qemu-devel] [PATCH 0/6] Start a contrib/libvhost-user marcandre.lureau
2016-06-04 21:05 ` [Qemu-devel] [PATCH 1/6] vubr: remove false comment marcandre.lureau
2016-06-06  7:34   ` Markus Armbruster
2016-06-06 10:16     ` Marc-André Lureau
2016-06-06 12:52       ` Victor Kaplansky
2016-06-04 21:05 ` [Qemu-devel] [PATCH 2/6] vubr: remove unnecessary dispatcher_remove marcandre.lureau
2016-06-04 21:05 ` [Qemu-devel] [PATCH 3/6] vubr: indicate peer disconnected marcandre.lureau
2016-06-04 21:05 ` [Qemu-devel] [PATCH 4/6] vubr: do not accept more than one connection marcandre.lureau
2016-06-04 21:05 ` [Qemu-devel] [PATCH 5/6] contrib: add libvhost-user marcandre.lureau
2016-06-04 21:05 ` [Qemu-devel] [PATCH 6/6] test/vubr: use contrib/libvhost-user marcandre.lureau
2016-07-13 13:16 ` [Qemu-devel] [PATCH 0/6] Start a contrib/libvhost-user Marc-André Lureau

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