aboutsummaryrefslogtreecommitdiff
path: root/contrib/libvhost-user
diff options
context:
space:
mode:
authorFelipe Franciosi <felipe@nutanix.com>2017-03-02 10:25:53 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2017-06-15 11:18:40 +0200
commit49cc0340f8be18871319ffec6efc72147e73ff0b (patch)
tree0cde15e9a048fc4507ff468d8cb412f1301b10e6 /contrib/libvhost-user
parentf12c1ebddf79c965d4fdca752c6b316c889c7675 (diff)
vhost-user-scsi: Introduce a vhost-user-scsi sample application
This commit introduces a vhost-user-scsi backend sample application. It must be linked with libiscsi and libvhost-user. To use it, compile with: $ make vhost-user-scsi And run as follows: $ ./vhost-user-scsi -u vus.sock -i iscsi://uri_to_target/ $ qemu-system-x86_64 --enable-kvm -m 512 \ -object memory-backend-file,id=mem,size=512m,share=on,mem-path=guestmem \ -numa node,memdev=mem \ -chardev socket,id=vhost-user-scsi,path=vus.sock \ -device vhost-user-scsi-pci,chardev=vhost-user-scsi \ The application is currently limited at one LUN only and it processes requests synchronously (therefore only achieving QD1). The purpose of the code is to show how a backend can be implemented and to test the vhost-user-scsi Qemu implementation. If a different instance of this vhost-user-scsi application is executed at a remote host, a VM can be live migrated to such a host. Signed-off-by: Felipe Franciosi <felipe@nutanix.com> Message-Id: <1488479153-21203-5-git-send-email-felipe@nutanix.com>
Diffstat (limited to 'contrib/libvhost-user')
-rw-r--r--contrib/libvhost-user/libvhost-user.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/contrib/libvhost-user/libvhost-user.h b/contrib/libvhost-user/libvhost-user.h
index af02a31ebe..53ef222c0b 100644
--- a/contrib/libvhost-user/libvhost-user.h
+++ b/contrib/libvhost-user/libvhost-user.h
@@ -17,6 +17,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
+#include <sys/poll.h>
#include <linux/vhost.h>
#include "standard-headers/linux/virtio_ring.h"
@@ -192,11 +193,11 @@ typedef struct VuVirtq {
} VuVirtq;
enum VuWatchCondtion {
- VU_WATCH_IN = 1 << 0,
- VU_WATCH_OUT = 1 << 1,
- VU_WATCH_PRI = 1 << 2,
- VU_WATCH_ERR = 1 << 3,
- VU_WATCH_HUP = 1 << 4,
+ VU_WATCH_IN = POLLIN,
+ VU_WATCH_OUT = POLLOUT,
+ VU_WATCH_PRI = POLLPRI,
+ VU_WATCH_ERR = POLLERR,
+ VU_WATCH_HUP = POLLHUP,
};
typedef void (*vu_panic_cb) (VuDev *dev, const char *err);