[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers |
Date: |
Thu, 19 Nov 2015 14:01:50 +0200 |
On Thu, Nov 19, 2015 at 02:44:37PM +0300, Pavel Fedin wrote:
> Hello!
>
> > OK, that's better, thanks!
>
> Yes, indeed this was simple.
>
> > Why do we need
> > if (kvm_eventfds_enabled()) {
> > memory_region_add_eventfd(&proxy->iomem,
> > VIRTIO_MMIO_QUEUENOTIFY, 4,
> > true, n, notifier);
> > } else if (!set_handler) {
> > virtio_queue_set_host_notifier_forwarding(vq);
> > }
> > everywhere though?
> >
> > Can't memory_region_add_eventfd DTRT depending on kvm etc?
>
> You know... I took a look at this, and yes, i could simply hook up emulation
> into memory region handlers. And everything that
> expects KVM eventfd binding will magically start working, probably rendering
> some bypass code obsolete.
> I have only one concern against this. qemu is a large piece of software,
> consisting of lots of components. I cannot test absolutely
> everything in every configuration. I suggest, old code was written with the
> assumption that if memory_region_add_eventfd() works, we
> are really using KVM acceleration. If we break this assumption, how much code
> will mysteriously misbehave instead of throwing
First of all, memory_region_add_eventfd simply exits on failure.
It seems unlikely you will break something which isn't already
broken.
Further:
$ git grep memory_region_add_eventfd
hw/misc/ivshmem.c: memory_region_add_eventfd(&s->ivshmem_mmio,
hw/misc/pci-testdev.c: memory_region_add_eventfd(test->mr,
hw/virtio/virtio-mmio.c: memory_region_add_eventfd(&proxy->iomem,
VIRTIO_MMIO_QUEUENOTIFY, 4,
hw/virtio/virtio-pci.c: memory_region_add_eventfd(modern_mr,
modern_addr, 0,
hw/virtio/virtio-pci.c: memory_region_add_eventfd(modern_mr,
modern_addr, 2,
hw/virtio/virtio-pci.c:
memory_region_add_eventfd(modern_notify_mr, 0, 2,
hw/virtio/virtio-pci.c: memory_region_add_eventfd(legacy_mr,
legacy_addr, 2,
include/exec/memory.h: * memory_region_add_eventfd: Request an eventfd to be
triggered when a word
include/exec/memory.h:void memory_region_add_eventfd(MemoryRegion *mr,
include/exec/memory.h: * memory_region_add_eventfd() call.
memory.c:void memory_region_add_eventfd(MemoryRegion *mr,
Not such a bit deal to audit all call sites, is it?
Cc memory API maintainer for an opinion.
Paolo, do you see anything wrong with making
memory_region_add_eventfd work (slowly) without kvm ioeventfd support?
> "function not supported" error, which is quite easy to trace down and fix?
That's a problem with switching from vhost to virtio too,
apparently you decided it's not a big deal there,
why a change of heart?
> What i would refactor, perhaps, is to add a return code to
> memory_region_add_eventfd(), so that it can signal failure instead of a
> critical abort, this would allow to get rid of kvm_eventfds_enabled()
> accompanying checks.
>
> Kind regards,
> Pavel Fedin
> Expert Engineer
> Samsung Electronics Research center Russia
Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Michael S. Tsirkin, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Pavel Fedin, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers,
Michael S. Tsirkin <=
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Paolo Bonzini, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Michael S. Tsirkin, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Pavel Fedin, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Paolo Bonzini, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Cornelia Huck, 2015/11/19
- Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers, Pavel Fedin, 2015/11/19