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: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] virtio: Implement userspace forwarding for host notifiers
Date: Thu, 19 Nov 2015 13:06:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0


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



reply via email to

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