aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/virtio_blk.h
diff options
context:
space:
mode:
authorMing Lei <ming.lei@canonical.com>2014-06-26 17:41:47 +0800
committerJens Axboe <axboe@fb.com>2014-07-01 10:51:01 -0600
commitcb553215d5d277d4838d7d6b7722e964bcf5ca1f (patch)
tree535928c09532f94a15e68035745059e374a4150f /include/uapi/linux/virtio_blk.h
parentblock SG_IO: add SG_FLAG_Q_AT_HEAD flag (diff)
downloadlinux-dev-cb553215d5d277d4838d7d6b7722e964bcf5ca1f.tar.xz
linux-dev-cb553215d5d277d4838d7d6b7722e964bcf5ca1f.zip
include/uapi/linux/virtio_blk.h: introduce feature of VIRTIO_BLK_F_MQ
Current virtio-blk spec only supports one virtual queue for transfering data between VM and host, and inside VM all kinds of operations on the virtual queue needs to hold one lock, so cause below problems: - bad scalability - bad throughput This patch requests to introduce feature of VIRTIO_BLK_F_MQ so that more than one virtual queues can be used to virtio-blk device, then above problems can be solved or eased. Signed-off-by: Ming Lei <ming.lei@canonical.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include/uapi/linux/virtio_blk.h')
-rw-r--r--include/uapi/linux/virtio_blk.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/uapi/linux/virtio_blk.h b/include/uapi/linux/virtio_blk.h
index 6d8e61c48563..9ad67b267584 100644
--- a/include/uapi/linux/virtio_blk.h
+++ b/include/uapi/linux/virtio_blk.h
@@ -40,6 +40,7 @@
#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */
#define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */
#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */
+#define VIRTIO_BLK_F_MQ 12 /* support more than one vq */
#ifndef __KERNEL__
/* Old (deprecated) name for VIRTIO_BLK_F_WCE. */
@@ -77,6 +78,10 @@ struct virtio_blk_config {
/* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */
__u8 wce;
+ __u8 unused;
+
+ /* number of vqs, only available when VIRTIO_BLK_F_MQ is set */
+ __u16 num_queues;
} __attribute__((packed));
/*