2012-11-14 18:39:30 +04:00
|
|
|
/*
|
|
|
|
* Dedicated thread for virtio-blk I/O processing
|
|
|
|
*
|
|
|
|
* Copyright 2012 IBM, Corp.
|
|
|
|
* Copyright 2012 Red Hat, Inc. and/or its affiliates
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
|
|
* See the COPYING file in the top-level directory.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HW_DATAPLANE_VIRTIO_BLK_H
|
|
|
|
#define HW_DATAPLANE_VIRTIO_BLK_H
|
|
|
|
|
2013-02-05 20:06:20 +04:00
|
|
|
#include "hw/virtio/virtio.h"
|
2012-11-14 18:39:30 +04:00
|
|
|
|
|
|
|
typedef struct VirtIOBlockDataPlane VirtIOBlockDataPlane;
|
|
|
|
|
2014-10-07 15:59:17 +04:00
|
|
|
void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *conf,
|
2013-06-07 18:18:50 +04:00
|
|
|
VirtIOBlockDataPlane **dataplane,
|
|
|
|
Error **errp);
|
2012-11-14 18:39:30 +04:00
|
|
|
void virtio_blk_data_plane_destroy(VirtIOBlockDataPlane *s);
|
2016-06-21 15:13:12 +03:00
|
|
|
void virtio_blk_data_plane_notify(VirtIOBlockDataPlane *s, VirtQueue *vq);
|
2012-11-14 18:39:30 +04:00
|
|
|
|
virtio-blk: always use dataplane path if ioeventfd is active
Override start_ioeventfd and stop_ioeventfd to start/stop the
whole dataplane logic. This has some positive side effects:
- no need anymore for virtio_add_queue_aio (i.e. a revert of
commit 0ff841f6d138904d514efa1d885bcaf54583852d)
- no need anymore to switch from generic ioeventfd handlers to
dataplane
It detects some errors better:
$ qemu-system-x86_64 -object iothread,id=io \
-drive id=null,file=null-aio://,if=none,format=raw \
-device virtio-blk-pci,ioeventfd=off,iothread=io,drive=null
qemu-system-x86_64: -device virtio-blk-pci,ioeventfd=off,iothread=io,drive=null:
ioeventfd is required for iothread
while previously it would have started just fine.
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2016-10-21 23:48:09 +03:00
|
|
|
int virtio_blk_data_plane_start(VirtIODevice *vdev);
|
|
|
|
void virtio_blk_data_plane_stop(VirtIODevice *vdev);
|
|
|
|
|
2012-11-14 18:39:30 +04:00
|
|
|
#endif /* HW_DATAPLANE_VIRTIO_BLK_H */
|