qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC patch 0/1] block: vhost-blk backend


From: Denis V. Lunev
Subject: Re: [RFC patch 0/1] block: vhost-blk backend
Date: Tue, 26 Jul 2022 16:15:48 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

On 26.07.2022 15:51, Michael S. Tsirkin wrote:
On Mon, Jul 25, 2022 at 11:55:26PM +0300, Andrey Zhadchenko wrote:
Although QEMU virtio-blk is quite fast, there is still some room for
improvements. Disk latency can be reduced if we handle virito-blk requests
in host kernel so we avoid a lot of syscalls and context switches.

The biggest disadvantage of this vhost-blk flavor is raw format.
Luckily Kirill Thai proposed device mapper driver for QCOW2 format to attach
files as block devices: https://www.spinics.net/lists/kernel/msg4292965.html
That one seems stalled. Do you plan to work on that too?
We have too. The difference in numbers, as you seen below is quite too
much. We have waited for this patch to be sent to keep pushing.

It should be noted that may be talk on OSS this year could also push a bit.

Den


Also by using kernel modules we can bypass iothread limitation and finaly scale
block requests with cpus for high-performance devices. This is planned to be
implemented in next version.

Linux kernel module part:
https://lore.kernel.org/kvm/20220725202753.298725-1-andrey.zhadchenko@virtuozzo.com/

test setups and results:
fio --direct=1 --rw=randread  --bs=4k  --ioengine=libaio --iodepth=128
QEMU drive options: cache=none
filesystem: xfs

SSD:
                | randread, IOPS  | randwrite, IOPS |
Host           |      95.8k      |      85.3k      |
QEMU virtio    |      57.5k      |      79.4k      |
QEMU vhost-blk |      95.6k      |      84.3k      |

RAMDISK (vq == vcpu):
                  | randread, IOPS | randwrite, IOPS |
virtio, 1vcpu    |      123k      |      129k       |
virtio, 2vcpu    |      253k (??) |      250k (??)  |
virtio, 4vcpu    |      158k      |      154k       |
vhost-blk, 1vcpu |      110k      |      113k       |
vhost-blk, 2vcpu |      247k      |      252k       |
vhost-blk, 4vcpu |      576k      |      567k       |

Andrey Zhadchenko (1):
   block: add vhost-blk backend

 From vhost/virtio side the patchset looks ok. But let's see what do
block devs think about it.


  configure                     |  13 ++
  hw/block/Kconfig              |   5 +
  hw/block/meson.build          |   1 +
  hw/block/vhost-blk.c          | 395 ++++++++++++++++++++++++++++++++++
  hw/virtio/meson.build         |   1 +
  hw/virtio/vhost-blk-pci.c     | 102 +++++++++
  include/hw/virtio/vhost-blk.h |  44 ++++
  linux-headers/linux/vhost.h   |   3 +
  8 files changed, 564 insertions(+)
  create mode 100644 hw/block/vhost-blk.c
  create mode 100644 hw/virtio/vhost-blk-pci.c
  create mode 100644 include/hw/virtio/vhost-blk.h

--
2.31.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]