[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] virtio: introduce grab/release_ioeventfd to
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] virtio: introduce grab/release_ioeventfd to fix vhost |
Date: |
Thu, 17 Nov 2016 09:36:05 +0100 |
On Wed, 16 Nov 2016 19:05:49 +0100
Paolo Bonzini <address@hidden> wrote:
> Following the recent refactoring of virtio notifiers [1], more specifically
> the patch ed08a2a0b ("virtio: use virtio_bus_set_host_notifier to
> start/stop ioeventfd") that uses virtio_bus_set_host_notifier [2]
> by default, core virtio code requires 'ioeventfd_started' to be set
> to true/false when the host notifiers are configured.
>
> When vhost is stopped and started, however, there is a stop followed by
> another start. Since ioeventfd_started was never set to true, the 'stop'
> operation triggered by virtio_bus_set_host_notifier() will not result
> in a call to virtio_pci_ioeventfd_assign(assign=false). This leaves
> the memory regions with stale notifiers and results on the next start
> triggering the following assertion:
>
> kvm_mem_ioeventfd_add: error adding ioeventfd: File exists
> Aborted
>
> This patch reintroduces (hopefully in a cleaner way) the concept
> that was present with ioeventfd_disabled before the refactoring.
> When ioeventfd_grabbed>0, ioeventfd_started tracks whether ioeventfd
> should be enabled or not, but ioeventfd is actually not started at
> all until vhost releases the host notifiers.
>
> [1] http://lists.nongnu.org/archive/html/qemu-devel/2016-10/msg07748.html
> [2] http://lists.nongnu.org/archive/html/qemu-devel/2016-10/msg07760.html
>
> Reported-by: Felipe Franciosi <address@hidden>
> Reported-by: Christian Borntraeger <address@hidden>
> Reported-by: Alex Williamson <address@hidden>
> Fixes: ed08a2a0b ("virtio: use virtio_bus_set_host_notifier to start/stop
> ioeventfd")
> Signed-off-by: Paolo Bonzini <address@hidden>
> Message-Id: <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> v1->v2: more comments [Cornelia]
>
> hw/virtio/vhost.c | 14 +++++-----
> hw/virtio/virtio-bus.c | 58
> ++++++++++++++++++++++++++++++++++--------
> hw/virtio/virtio.c | 16 ++++++++++++
> include/hw/virtio/virtio-bus.h | 14 ++++++++++
> include/hw/virtio/virtio.h | 2 ++
> 5 files changed, 86 insertions(+), 18 deletions(-)
Reviewed-by: Cornelia Huck <address@hidden>
[Qemu-devel] [PATCH 1/3] virtio: introduce grab/release_ioeventfd to fix vhost, Paolo Bonzini, 2016/11/16
[Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Paolo Bonzini, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Michael S. Tsirkin, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Paolo Bonzini, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Michael S. Tsirkin, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Paolo Bonzini, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Michael S. Tsirkin, 2016/11/16
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Paolo Bonzini, 2016/11/17
- Re: [Qemu-devel] [PATCH 3/3] virtio: set ISR on dataplane notifications, Michael S. Tsirkin, 2016/11/17