RE: [Xen-devel] Re: [GIT PULL] Xen APIC hooks (with io_apic_ops)

Dan Magenheimer
2009-05-26T19:21:34Z

> It will also be
> interesting to see how far Xen can get along without real memory
> management (overcommit).

Several implementations of "classic" memory overcommit have been
done for Xen, most recently the Difference Engine work at UCSD.
It is true that none have been merged yet, in part because,
in many real world environments, "generalized" overcommit
often leads to hypervisor swapping, and performance becomes
unacceptable. (In other words, except in certain limited customer
use models, memory overcommit is a "marketing feature".)

There's also a novel approach, Transcendent Memory (aka "tmem"
see http://oss.oracle.com/projects/tmem). Though tmem requires the
guest to participate in memory management decisions (thus requiring
a Linux patch), system-wide physical memory efficiency may
improve vs memory deduplication, and hypervisor-based swapping
is not necessary.

> The Linux scheduler already supports multiple scheduling
> classes. If we
> find that none of them will fit our needs, we'll propose a new one.
> When the need can be demonstrated to be real, and the
> implementation can
> be clean, Linux can usually be adapted.

But that's exactly George and Jeremy's point. KVM will
eventually require changes that clutter Linux for purposes
that are relevant only to a hypervisor.

> > I think if you did an SCO-style audit comparing
> > Linux and Xen 3.4, you'd find a lot less in common than you think.
>
> A lot of the arch code is derived from Linux.

Indeed it is, but the operative word is "derived". In
many cases, the code has been modified to be more applicable
to a hypervisor. For example, in Xen, tmem uses radix trees
in a way that is similar to Linux but different enough that
the changes would not likely be acceptable in Linux. The
separation between Xen and Linux allows this diversity
without cluttering Linux.

I think we can all agree that drawing boundaries between
"hypervisor" functionality and "operating system"
functionality is a work in progress and may take many
more years to settle. In the meantime, there should be
room (and support) for different approaches.