Messages in this thread | | | Date | Thu, 07 May 2009 15:29:01 +0300 | From | Avi Kivity <> | Subject | Re: [RFC PATCH 0/3] generic hypercall support |
| |
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
| |