Re: [RFC PATCH 0/3] generic hypercall support

Avi Kivity
2009-05-11T18:04:16Z

Anthony Liguori wrote:
>>
>> It's a question of cost vs. benefit. It's clear the benefit is low
>> (but that doesn't mean it's not worth having). The cost initially
>> appeared to be very low, until the nested virtualization wrench was
>> thrown into the works. Not that nested virtualization is a reality
>> -- even on svm where it is implemented it is not yet production
>> quality and is disabled by default.
>>
>> Now nested virtualization is beginning to look interesting, with
>> Windows 7's XP mode requiring virtualization extensions. Desktop
>> virtualization is also something likely to use device assignment
>> (though you probably won't assign a virtio device to the XP instance
>> inside Windows 7).
>>
>> Maybe we should revisit the mmio hypercall idea again, it might be
>> workable if we find a way to let the guest know if it should use the
>> hypercall or not for a given memory range.
>>
>> mmio hypercall is nice because
>> - it falls back nicely to pure mmio
>> - it optimizes an existing slow path, not just new device models
>> - it has preexisting semantics, so we have less ABI to screw up
>> - for nested virtualization + device assignment, we can drop it and
>> get a nice speed win (or rather, less speed loss)
>
> If it's a PCI device, then we can also have an interrupt which we
> currently lack with vmcall-based hypercalls. This would give us
> guestcalls, upcalls, or whatever we've previously decided to call them.

Sorry, I totally failed to understand this. Please explain.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.