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

Avi Kivity
2009-05-07T18:25:56Z

Gregory Haskins wrote:
> I guess technically mmio can just be a simple access of the page which
> would be problematic to trap locally without a PF. However it seems
> that most mmio always passes through a ioread()/iowrite() call so this
> is perhaps the hook point. If we set the stake in the ground that mmios
> that go through some other mechanism like PFs can just hit the "slow
> path" are an acceptable casualty, I think we can make that work.
>

That's my thinking exactly.

Note we can cheat further. kvm already has a "coalesced mmio" feature
where side-effect-free mmios are collected in the kernel and passed to
userspace only when some other significant event happens. We could pass
those addresses to the guest and let it queue those writes itself,
avoiding the hypercall completely.

Though it's probably pointless: if the guest is paravirtualized enough
to have the mmio hypercall, then it shouldn't be using e1000.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.