diff mbox

[1/5] virtio-pci: use ioeventfd even when KVM is disabled

Message ID 20170627084348.GG14166@lemon.lan
State New
Headers show

Commit Message

Fam Zheng June 27, 2017, 8:43 a.m. UTC
On Thu, 06/15 17:38, Stefan Hajnoczi wrote:
> Old kvm.ko versions only supported a tiny number of ioeventfds so
> virtio-pci avoids ioeventfds when kvm_has_many_ioeventfds() returns 0.
> 
> Do not check kvm_has_many_ioeventfds() when KVM is disabled since it
> always returns 0.  Since commit 8c56c1a592b5092d91da8d8943c17777d6462a6f
> ("memory: emulate ioeventfd") it has been possible to use ioeventfds in
> qtest or TCG mode.
> 
> This patch makes -device virtio-blk-pci,iothread=iothread0 work even
> when KVM is disabled.
> 
> I have tested that virtio-blk-pci works under TCG both with and without
> iothread.
> 
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

This one was dropped out from Kevin's pull request but the iotest case update on
068 which depends on it is merged. Now the test fails for me:

068 2s ... - output mismatch (see 068.out.bad)
Failures: 068
Failed 1 of 1 tests

Fam

Comments

Kevin Wolf June 27, 2017, 11:07 a.m. UTC | #1
Am 27.06.2017 um 10:43 hat Fam Zheng geschrieben:
> On Thu, 06/15 17:38, Stefan Hajnoczi wrote:
> > Old kvm.ko versions only supported a tiny number of ioeventfds so
> > virtio-pci avoids ioeventfds when kvm_has_many_ioeventfds() returns 0.
> > 
> > Do not check kvm_has_many_ioeventfds() when KVM is disabled since it
> > always returns 0.  Since commit 8c56c1a592b5092d91da8d8943c17777d6462a6f
> > ("memory: emulate ioeventfd") it has been possible to use ioeventfds in
> > qtest or TCG mode.
> > 
> > This patch makes -device virtio-blk-pci,iothread=iothread0 work even
> > when KVM is disabled.
> > 
> > I have tested that virtio-blk-pci works under TCG both with and without
> > iothread.
> > 
> > Cc: Michael S. Tsirkin <mst@redhat.com>
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> 
> This one was dropped out from Kevin's pull request but the iotest case
> update on 068 which depends on it is merged. Now the test fails for
> me:

Whoops, sorry about that. Anyway, I think if we can, the way to fix it
is to find out why this patch is failing qtest, and merge a fixed v2,
rather than reverting the test cases.

Stefan, can you reproduce the failure?

Kevin

> 068 2s ... - output mismatch (see 068.out.bad)
> --- /stor/work/qemu/tests/qemu-iotests/068.out	2017-06-27 16:22:55.003815188 +0800
> +++ 068.out.bad	2017-06-27 16:41:37.903626275 +0800
> @@ -12,9 +12,8 @@
>  === Saving and reloading a VM state to/from a qcow2 image (-object iothread,id=iothread0 -set device.hba0.iothread=iothread0) ===
>  
>  Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=131072
> +qemu-system-x86_64: -device virtio-scsi-pci,id=hba0: ioeventfd is required for iothread
>  QEMU X.Y.Z monitor - type 'help' for more information
> -(qemu) savevm 0
> -(qemu) quit
> +(qemu) qemu-system-x86_64: -device virtio-scsi-pci,id=hba0: ioeventfd is required for iothread
>  QEMU X.Y.Z monitor - type 'help' for more information
> -(qemu) quit
> -*** done
> +(qemu) *** done
> Failures: 068
> Failed 1 of 1 tests
> 
> Fam
Stefan Hajnoczi June 28, 2017, 12:17 p.m. UTC | #2
On Tue, Jun 27, 2017 at 01:07:35PM +0200, Kevin Wolf wrote:
> Am 27.06.2017 um 10:43 hat Fam Zheng geschrieben:
> > On Thu, 06/15 17:38, Stefan Hajnoczi wrote:
> > > Old kvm.ko versions only supported a tiny number of ioeventfds so
> > > virtio-pci avoids ioeventfds when kvm_has_many_ioeventfds() returns 0.
> > > 
> > > Do not check kvm_has_many_ioeventfds() when KVM is disabled since it
> > > always returns 0.  Since commit 8c56c1a592b5092d91da8d8943c17777d6462a6f
> > > ("memory: emulate ioeventfd") it has been possible to use ioeventfds in
> > > qtest or TCG mode.
> > > 
> > > This patch makes -device virtio-blk-pci,iothread=iothread0 work even
> > > when KVM is disabled.
> > > 
> > > I have tested that virtio-blk-pci works under TCG both with and without
> > > iothread.
> > > 
> > > Cc: Michael S. Tsirkin <mst@redhat.com>
> > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > 
> > This one was dropped out from Kevin's pull request but the iotest case
> > update on 068 which depends on it is merged. Now the test fails for
> > me:
> 
> Whoops, sorry about that. Anyway, I think if we can, the way to fix it
> is to find out why this patch is failing qtest, and merge a fixed v2,
> rather than reverting the test cases.
> 
> Stefan, can you reproduce the failure?

I will merge this patch via my tree and send a pull request today.

The purpose of this patch is to make -device virtio-blk-pci,iothread=ID
work under TCG/qtest.  This is necessary because qemu-iotests isn't
allowed to depend on KVM.
diff mbox

Patch

--- /stor/work/qemu/tests/qemu-iotests/068.out	2017-06-27 16:22:55.003815188 +0800
+++ 068.out.bad	2017-06-27 16:41:37.903626275 +0800
@@ -12,9 +12,8 @@ 
 === Saving and reloading a VM state to/from a qcow2 image (-object iothread,id=iothread0 -set device.hba0.iothread=iothread0) ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=131072
+qemu-system-x86_64: -device virtio-scsi-pci,id=hba0: ioeventfd is required for iothread
 QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) savevm 0
-(qemu) quit
+(qemu) qemu-system-x86_64: -device virtio-scsi-pci,id=hba0: ioeventfd is required for iothread
 QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) quit
-*** done
+(qemu) *** done