|
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.htmlThat 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 backendFrom 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
[Prev in Thread] | Current Thread | [Next in Thread] |