Re: Xen & VMI?

From: Jeremy Fitzhardinge
Date: Tue Mar 06 2007 - 16:03:08 EST


Ingo Molnar wrote:
> maybe we are talking past each other because i dont really disagree with
> that: i mentioned it right at beginning that higher-level APIs would
> have to be added to VMI. What i'd like to avoid is the ABI duplication
> for the lowlevel stuff /and/ for the highlevel stuff. Since VMI is
> mostly about lowlevel stuff right now it's obvious that it would have to
> grow more highlevel ops. Doing an IO driver via IO emulation is
> obviously pretty ... low-tech.
>
> maybe i shouldnt call it 'VMI' but 'the paravirt ABI'. I dont mind if
> it's the Xen ABI or the VMWare ABI or a mesh of the two - everyone can
> map their own internals to that /one/ ABI.

Well, that's the basic force shaping paravirt_ops; many of the calls are
generally used by all backends, and some are more specific. The
entrypoints in paravirt_ops would be an approximate model for this
hypothetical ABI you're talking about.

But the key point you're missing is that this isn't a one-way
interface. The hypervisor backend code makes calls into the kernel's
interfaces as well. We use memory allocation, the interrupt
infrastructure, timers, per-cpu and as many other existing interfaces as
possible, so that we don't have to bloat paravirt_ops with duplicates of
all those other interfaces.

If you're seriously talking about an ABI, then you'd also have to
present stable ABIs for all subsystems the hypervisor backends want to
call into, either by actually freezing the internal linux interfaces
into ABIs, or by effectively duplicating them across the paravirt ABI
(or whatever).

J
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/