qemu-devel
[Top][All Lists]
Advanced

[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:10:46 +0200

On Thu, Nov 19, 2015 at 01:06:17PM +0100, Paolo Bonzini wrote:
> 
> 
> On 19/11/2015 13:01, Michael S. Tsirkin wrote:
> >> >  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?
> > 
> 
> Sure, it's even been on the todo list for a while.  Stefan Hajnoczi had
> a patch, the only ugly thing was that it slowed down a little all
> non-ioeventfd accesses, but I guess that's okay because it's probably
> not measurable.
> 
> http://lists.nongnu.org/archive/html/qemu-devel/2015-07/msg04710.html
> 
> Paolo
> 
> Paolo

Maybe it can be imporved to probe the kernel and only take action if kvm
does not support ioeventfd.

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]