Anthony Liguori wrote:
> On Mon, 2007-08-27 at 20:36 +0300, Avi Kivity wrote:
>   
>> Anthony Liguori wrote:
>>     
>>> On Mon, 2007-08-27 at 19:47 +0300, Avi Kivity wrote:
>>>   
>>>       
>>>> Avi Kivity wrote:
>>>>     
>>>>         
>>>>> Thinking a little more about this, it isn't about handling hypercalls 
>>>>> in userspace, but about handling a virtio sync() in userspace.
>>>>>
>>>>> So how about having a KVM_HC_WAKE_CHANNEL hypercall (similar to Xen's 
>>>>> event channel, but assymetric) that has a channel parameter.  The 
>>>>> kernel handler for that hypercall dispatches calls to either a kernel 
>>>>> handler or a userspace handler.  That means we don't need a separate 
>>>>> ETH_SEND, ETH_RECEIVE, or BLOCK_SEND hypercalls.
>>>>>       
>>>>>           
>>>> And thinking a tiny little bit more about this, we can have the kernel 
>>>> (optionally) fire an eventfd, so a separate userspace thread or process 
>>>> can be woken up to service the device, without a heavyweight exit.
>>>>     
>>>>         
>>> Yes, I think this is much nicer.  By "calls to ... a userspace handler"
>>> I presume you mean generating an exit to userspace with a new exit type
>>> similar to how hypercalls work today?
>>>
>>>   
>>>       
>> There are two options:
>> - hypercall handler sets some fields in vcpu->run and exits to userspace
>> - hypercall handler triggers an eventfd and returns to guest
>>
>> Maybe we can unify the two by only allowing eventfd;
>>     
>
> Yes, that would be better except that the latency may be unacceptable.
>
>   

Hmm.  Good point.  I keep saying kvm can have great I/O because the 
scheduler is not involved in ordinary I/O.  Let's not break that.

>>  userspace can 
>> attach a signal to the eventfd if it wants a synchronous exit (does 
>> eventfd allow fcntl(F_SETOWN)?)
>>     
>
> Which would address the latency issue nicely.  Looking at the fs code,
> it looks like eventfd shouldn't have to do anything special for it.
>   

I'm not sure now.  Which thread will be selected for accepting the 
signal?  if it isn't guaranteed to be the current thread, we're back 
with scheduler involvement, and possibly cacheline bouncing.

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
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