Avi Kivity wrote:
> Anthony Liguori wrote:
>>>>>  
>>>>>> +    case VIRTIO_PCI_QUEUE_NOTIFY:
>>>>>> +    if (val < VIRTIO_PCI_QUEUE_MAX)
>>>>>> +        virtio_ring_kick(vdev, &vdev->vq[val]);
>>>>>> +    break;
>>>>>>       
>>>>>
>>>>> I see you're not using hypercalls for this, presumably for 
>>>>> compatibility
>>>>> with -no-kvm.
>>>>
>>>> More than just that.  By stick to PIO, we are compatible with just 
>>>> about any VMM.  For instance, we get Xen support for free.  If we 
>>>> used hypercalls, even if we agreed on a way to determine which 
>>>> number to use and how to make those calls, it would still be 
>>>> difficult to implement in something like Xen.
>>>>
>>>
>>> But pio through the config space basically means you're committed to 
>>> handling it in qemu.  We want a more flexible mechanism.
>>
>> There's no reason that the PIO operations couldn't be handled in the 
>> kernel.  You'll already need some level of cooperation in userspace 
>> unless you plan on implementing the PCI bus in kernel space too.  
>> It's easy enough in the pci_map function in QEMU to just notify the 
>> kernel that it should listen on a particular PIO range.
>
> With my new  understanding of what this is all about, I suggest each 
> virtqueue having an ID filled in by the host.  This ID is globally 
> unique, and is used as an argument for kick.  It would map into a Xen 
> domain id + event channel number, a number to be written into a pio 
> port for kvm-lite or non-hypercall kvm, the argument for a kick 
> hypercall on kvm, or whatever.

Yeah, right now, I maintain a virtqueue "selector" within virtio-pci and 
use that for notification.  This index is also exposed in the 
config->find_vq() within virtio.  Changing that to an opaque ID would 
require introducing another mechanism to enumerate the virtqueues since 
you couldn't just start from 0 and keep going until you hit an invalid 
virtqueue.

I'm not sure I'm convinced that you couldn't just hide this "id" notion 
in the virtio-xen implementation if you needed to.

Regards,

Anthony Liguori

> This is independent of virtio-pci, which is good.
>


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to