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

Avi Kivity
2009-05-07T12:30:12Z

Gregory Haskins wrote:
> Chris Wright wrote:
>
>> * Gregory Haskins (ghaskins@novell.com) wrote:
>>
>>
>>> Chris Wright wrote:
>>>
>>>
>>>> But a free-form hypercall(unsigned long nr, unsigned long *args, size_t count)
>>>> means hypercall number and arg list must be the same in order for code
>>>> to call hypercall() in a hypervisor agnostic way.
>>>>
>>>>
>>> Yes, and that is exactly the intention. I think its perhaps the point
>>> you are missing.
>>>
>>>
>> Yes, I was reading this as purely any hypercall, but it seems a bit
>> more like:
>> pv_io_ops->iomap()
>> pv_io_ops->ioread()
>> pv_io_ops->iowrite()
>>
>>
>
> Right.
>

Hmm, reminds me of something I thought of a while back.

We could implement an 'mmio hypercall' that does mmio reads/writes via a
hypercall instead of an mmio operation. That will speed up mmio for
emulated devices (say, e1000). It's easy to hook into Linux
(readl/writel), is pci-friendly, non-x86 friendly, etc.

It also makes the device work when hypercall support is not available
(qemu/tcg); you simply fall back on mmio.

--
error compiling committee.c: too many arguments to function