Re: Xen & VMI?

Chris Wright
2007-03-06T21:29:46Z

* Ingo Molnar (mingo@elte.hu) wrote:
> with the big freaking difference that the 5 parallel implementations of
> inode->i_op are:
>
> _internal to Linux_

Granted. Until it's modprobe xen.ko, vmware.ko, viridian.ko...that's
not going to go away, even with the VMI.

> Doh. There's only a data ABI underneath them.

Perhaps from the syscall perspective. But there's also things like
internal interactions with the page cache, VMA and pt updates, etc
which are much more functional/behavioural than purely moving data.
And when we're talking about page tables or simlar for hv, I think the
data vs. functional is an oversimplification.

> every time someone tried to impose a functional/behavioral ABI on core
> bits of Linux we said: 'no way dude!'. Remember STREAMS? Remember the
> module KABI? Remember ACPI? [doh, i guess we messed up on the latter
> one. We regret that day ever since.]

Heheh, OK, now I know I'm lost when we've both used ACPI as a negative
example to argue our point. Honestly, all of the above suggest no VMI
to me (in fact, I used those type of arguments against VMI about 1 year
ago ;-).

> (network file systems are a bit of an exception to the rule, but those
> are pretty isolated themselves and in no way as wide and central as the
> direction paravirt_ops appears to grow.)
>
> > > having data ABI coupling is one thing (filesystems, network formats,
> > > etc.). But having a 5-way function ABI coupling between system
> > > software running on the /same piece of hardware/, doing the same
> > > thing in essence is just madness in my book.
> >
> > This is where I'm not understanding your argument. The hardware is
> > somewhat irrelevant since the OS is running on a platform presented by
> > the hypervisor. And the point is to allow multiple implementations of
> > the OS opertations that interact with the platform. And in essence
> > all network stacks and file systems are doing the same thing with the
> > same hardware. [...]
>
> again, those are /DATA/ ABIs. Not function ABIs. Not behavioral ABIs.
> The coupling is /FAR/ saner and far more plannable and far more
> isolated. And even data ABIs are very non-trivial ...

I agree that changing the interface to the low-level platform is tricky
and less isolated. But how does the VMI protect you from those changes?
It simply doesn't, the changes are still necessary. And the inflexibility
means the tough corner cases swept under the VMI rug are more difficult
to debug, get right, etc...

thanks,
-chris