From: Coiby Xu <coiby.xu@gmail.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Subject: Re: How to extend QEMU's vhost-user tests after implementing vhost-user-blk device backend
Date: Wed, 11 Dec 2019 23:25:32 +0800 [thread overview]
Message-ID: <CAJAkqrULM=wjDEVV8kZBU4u1ag4ERiKq3z5yzRus3vqwsx_a4A@mail.gmail.com> (raw)
In-Reply-To: <20191114111429.GC580024@stefanha-x1.localdomain>
Hi Stefan,
I'm now writing the tests for vhost-user-blk device based on
tests/virtio-blk-test.c. But block_resize command doesn't apply to
vhost-user-blk device.
After launching vhost-user backend server, I type the following
command to connect to it
(qemu) chardev-add socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket
(qemu) object_add memory-backend-memfd,id=mem,size=256M,share=on
(qemu) device_add vhost-user-blk-pci,id=blk0,chardev=char1
(qemu) block_resize blk0 512
Error: Cannot find device=blk0 nor node_name=
QEMU can't find the device although in the guest OS I can already
mount /dev/vda. And `info block` doesn't list the newly added
vhost-user-blk device,
(qemu) info block
disk (#block154): dpdk.img (raw)
Attached to: /machine/peripheral-anon/device[0]
Cache mode: writeback
floppy0: [not inserted]
Attached to: /machine/unattached/device[17]
Removable device: not locked, tray closed
sd0: [not inserted]
Removable device: not locked, tray close
It seems `info block` and `block_resize` only work with `drive_add`
which is not necessary for vhost-user-blk device. Should I let QEMU
support adding vhost-user backend device in the way similar to adding
NBD device(`drive_add -n buddy
file.driver=nbd,file.host=localhost,file.port=49153,file.export=disk,node-name=nbd_client1`),
i.e., a drive can be added via `drive_add -n buddy
file.driver=vhost-user,file.sock=/tmp/vhost-user-blk_vhost.socket,node-name=vhost_user_client1`?
Thank you!
On Thu, Nov 14, 2019 at 7:14 PM Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> On Wed, Nov 13, 2019 at 05:23:46PM +0800, Coiby Xu wrote:
> > I've implemented vhost-user-blk device backend by following
> > https://wiki.qemu.org/Google_Summer_of_Code_2019#vhost-user-blk_device_backend.
> > But I'm not sure what kind of tests I should write or to extend to
> > take advantage of implemented vhost-user-blk device backend. The
> > existing two tests related to vhost user are tests/vhost-user-bridge.c
> > and tests/vhost-user-test.c both of which act as vhost user server to
> > test QEMU's implementation of vhost user client. Am I supposed to
> > extend these two tests? Could you elaborate on the final step "Extend
> > QEMU's vhost-user tests to take advantage of your vhost-user-blk
> > device backend"?
>
> Hi Coiby,
> The following tests/virtio-blk-test.c test cases will also work with
> vhost-user-blk: basic, indirect, idx, nxvirtq. The other test cases
> may require more work because they send QMP commands like block_resize
> or device_add virtio-blk-pci.
>
> In theory block_resize should work because the vhost-user-blk device
> backend can send a VIRTIO Configuration Space changed interrupt
> (VHOST_USER_SLAVE_CONFIG_CHANGE_MSG), but I haven't checked if this code
> path is fully implemented.
>
> In order to reuse existing test cases you could add new initialization
> code to virtio-blk-test.c that:
> 1. Starts the vhost-user-blk device backend
> 2. Adds a -device vhost-user-blk-pci connected to that device backend
>
> Please post your patches to qemu-devel even if you don't have test cases
> yet. That way you can get review feedback earlier.
>
> Stefan
--
Best regards,
Coiby
next prev parent reply other threads:[~2019-12-11 15:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-13 9:23 How to extend QEMU's vhost-user tests after implementing vhost-user-blk device backend Coiby Xu
2019-11-14 11:14 ` Stefan Hajnoczi
2019-12-11 15:25 ` Coiby Xu [this message]
2019-12-13 10:58 ` Stefan Hajnoczi
2020-01-04 6:00 ` Coiby Xu
2020-01-08 16:56 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJAkqrULM=wjDEVV8kZBU4u1ag4ERiKq3z5yzRus3vqwsx_a4A@mail.gmail.com' \
--to=coiby.xu@gmail.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).