[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2] virtio: revert virtio_queue_set_notificatio
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH 0/2] virtio: revert virtio_queue_set_notification() nesting |
Date: |
Tue, 17 Jan 2017 00:31:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
On 01/12/17 12:46, Stefan Hajnoczi wrote:
> The virtio_queue_set_notification() nesting introduced for AioContext polling
> raised an assertion with virtio-net (even in non-polling mode). Converting
> virtio-net and virtio-crypto to use virtio_queue_set_notification() in a
> nesting fashion would be invasive and isn't worth it.
>
> Patch 1 contains the revert to resolve the bug that Doug noticed.
>
> Patch 2 is a less efficient but safe alternative.
>
> Stefan Hajnoczi (2):
> Revert "virtio: turn vq->notification into a nested counter"
> virtio: disable notifications again after poll succeeded
>
> hw/virtio/virtio.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
>
I confirm that with current master
(2ccede18bd24fce5db83fef3674563a1f256717b), my TCG aarch64 guest,
running ArmVirtQemu UEFI firmware, crashes with the following assertion
failure:
qemu-system-aarch64: .../hw/virtio/virtio.c:215:
virtio_queue_set_notification: Assertion `vq->notification_disabled > 0'
failed.
This guest does not use iPXE's UEFI SNP driver for virtio-net, instead
it uses OVMF's own, built-in VirtioNetDxe driver.
With both patches applied, everything works fine. The assertion failure
is gone, and I could ping a public host from the UEFI shell command line.
Tested-by: Laszlo Ersek <address@hidden>
I'm unsure if my use case covers polling mode, so it might be prudent to
add the tag to patch #1 only. I set the breakpoint that you gave Doug
(using "virsh start --paused" + attaching GDB to the running QEMU
process, before the firmware got any chance to execute), and the
breakpoint (virtio_queue_host_notifier_aio_poll_begin) didn't fire
during the test.
Thanks!
Laszlo
- [Qemu-devel] [PATCH 2/2] virtio: disable notifications again after poll succeeded, (continued)
Re: [Qemu-devel] [PATCH 0/2] virtio: revert virtio_queue_set_notification() nesting, Richard Henderson, 2017/01/13
Re: [Qemu-devel] [PATCH 0/2] virtio: revert virtio_queue_set_notification() nesting,
Laszlo Ersek <=