[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 0/9] xen-block: support multi hardware-queues/rings
Note: These patches were based on original work of Arianna's internship for GNOME's Outreach Program for Women. The first patch which just convert xen-blkfront driver to use blk-mq api has been applied by David. After using blk-mq api, a guest has more than one(nr_vpus) software request queues associated with each block front. These queues can be mapped over several rings(hardware queues) to the backend, making it very easy for us to run multiple threads on the backend for a single virtual disk. By having different threads issuing requests at the same time, the performance of guest can be improved significantly in the end. Test was done based on null_blk driver: dom0: v4.2-rc8 16vcpus 10GB "modprobe null_blk" domu: v4.2-rc8 16vcpus 10GB [test] rw=read or randread direct=1 ioengine=libaio bs=4k time_based runtime=30 filename=/dev/xvdb numjobs=16 iodepth=64 iodepth_batch=64 iodepth_batch_complete=64 group_reporting Seqread: dom0 domU(no_mq) domU(4 queues) 8 queues 16 queues iops: 1308k 690k 1380k(+200%) 1238k 1471k Randread: dom0 domU(no_mq) domU(4 queues) 8 queues 16 queues iops: 1310k 279k 810k(+200%) 871k 1000k Only with 4queues, iops for domU get improved a lot and nearly catch up with dom0. There were also similar huge improvement for write and real SSD storage. --- v3: Rebased to v4.2-rc8 Bob Liu (9): xen-blkfront: convert to blk-mq APIs xen-block: add document for mutli hardware queues/rings xen/blkfront: separate per ring information out of device info xen/blkfront: pseudo support for multi hardware queues/rings xen/blkfront: convert per device io_lock to per ring ring_lock xen/blkfront: negotiate the number of hw queues/rings with backend xen/blkback: separate ring information out of struct xen_blkif xen/blkback: pseudo support for multi hardware queues/rings xen/blkback: get number of hardware queues/rings from blkfront drivers/block/xen-blkback/blkback.c | 373 +++++----- drivers/block/xen-blkback/common.h | 53 +- drivers/block/xen-blkback/xenbus.c | 376 ++++++---- drivers/block/xen-blkfront.c | 1343 ++++++++++++++++++++--------------- include/xen/interface/io/blkif.h | 32 + 5 files changed, 1278 insertions(+), 899 deletions(-) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |