On 09.03.2010, at 14:11, Avi Kivity wrote:

> On 03/09/2010 03:04 PM, Alexander Graf wrote:
>> 
>>>> +          /* KVM_EXIT_OSI */
>>>> +          struct {
>>>> +                  __u64 gprs[32];
>>>> +          } osi;
>>>> +
>>>> +MOL uses a special hypercall interface it calls 'OSI'. To enable it, we 
>>>> catch
>>>> +hypercalls and exit with this exit struct that contains all the guest 
>>>> gprs.
>>>> +
>>>> +If exit_reason is KVM_EXIT_OSI, then the vcpu has triggered such a 
>>>> hypercall.
>>>> +Userspace can now handle the hypercall and when it's done modify the gprs 
>>>> as
>>>> +necessary. Upon guest entry all guest GPRs will then be replaced by the 
>>>> values
>>>> +in this struct.
>>>> +
>>>> 
>>>>       
>>> That's migration unsafe.  There may not be next guest entry on this host.
>>>     
>> It's as unsafe as MMIO then.
>> 
>>   
> 
> From api.txt:
> 
>> NOTE: For KVM_EXIT_IO and KVM_EXIT_MMIO, the corresponding operations
>> are complete (and guest state is consistent) only after userspace has
>> re-entered the kernel with KVM_RUN.  The kernel side will first finish
>> incomplete operations and then check for pending signals.  Userspace
>> can re-enter the guest with an unmasked signal pending to complete
>> pending operations.
> 

Alright - so I add KVM_EXIT_OSI there and be good? :)

> 
>>> Is using KVM_[GS]ET_REGS problematic for some reason?
>>>     
>> It's two additional ioctls for no good reason. We know the interface, so we 
>> can model towards it.
>>   
> 
> But we need to be migration safe.  If the interface is not heavily used, 
> let's not add complications.

MOL uses OSI calls instead of MMIO. So yes, it is heavily used.


Alex--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to