From: Ingo Molnar <mingo@elte.hu>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: virtualization <virtualization@lists.osdl.org>,
Jan Beulich <jbeulich@novell.com>,
Anthony Liguori <anthony@codemonkey.ws>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org, Roland McGrath <roland@redhat.com>
Subject: Re: Xen & VMI?
Date: Wed, 7 Mar 2007 09:15:10 +0100 [thread overview]
Message-ID: <20070307081510.GB15111@elte.hu> (raw)
In-Reply-To: <1173228246.4644.85.camel@localhost.localdomain>
* Rusty Russell <rusty@rustcorp.com.au> wrote:
> On Tue, 2007-03-06 at 21:37 +0100, Ingo Molnar wrote:
> > 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.
>
> I think it's an excellent aim, but it's *HARD*. I rejected this
> approach earlier because I'm just not smart enough. (Yet?)
>
> The Linux side is fairly stable. The hardware side is changing, and
> the hypervisor side is changing. This means the ABI will churn fairly
> fast. The hypervisors are very different, which means the ABI will be
> very wide.
the 'hardware is changing fast so we cannot do a sane API' argument
sounds good at first but in this context it is still fundamentally
wrong. Hardware has changed /dramatically/ since we started Linux, still
we didnt have to do dramatic changes to the system call API/ABI. Why?
Because hardware too is fundamentally controlled by the rules of this
world. So if you know the laws of physics, math and computer science,
you /CAN/ do a sane API that lives for quite some time. We had these
kinds of discussions when Linux was just a few years old - many people
were worried about 'the hardware changes too fast' - but if the
fundamentals are strong, it _doesnt really matter_, as long as our
interfaces are sane and we quickly adopt our internals.
On the other hand, Linux's internal details, semantics, approaches are a
lot more ad-hoc and alot more affected by changes in the hardware
environment - that's why i'd not like to see some external ABI
constraint limit aspects of those internals.
For example, VMI_CALL_SetAlarm takes a 'cycles' argument. Cycles is a
quite bad unit for an API, it should be absolute time, nanosec or
picosec based instead. We could easily see CPUs that have /no concept of
cycles/, at all! Even today's CPUs have hardly any fix concept of
cycles, due to cpufreq. It's as if 15 years ago we had based sys_mmap()
around the concept of '16-bit segments'. We could certainly make it work
on current hardware but it would look pretty awkward today.
in fact hardware changes alot more by just going from one Linux arch to
another - still the system call API is essentially the same. (with
small, non-fundamental variations)
furthermore, most of the details in VMI or in Xen's lowlevel APIs (where
most of the overlap is currently - VMI doesnt have all that many
highlevel APIs) are cast into stone. The i386 arch is not going to
change, ever. Most details of the x86_64 arch is not going to change,
ever. It's unclear whether there will ever be the need for any x86_128
arch (for humans). So it should be quite possible to come up with
something sane for these lowlevel details, and cast it into stone, for
everyone. Just like the chip makers cast it into silicon.
the more nontrivial (and thus more harmful, because more
design-limiting) bits are the highlevel APIs.
> We could start with VMI and try to support Xen, KVM and lguest. It
> would at least give us a better idea of the scope of the problem. But
> IMHO it's a *huge* job.
yeah, it's a nontrivial job - like writing a sane OS. But it's doable
and we are in fact out here trying to do exactly that, right? ;-)
Ingo
next prev parent reply other threads:[~2007-03-07 8:15 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070305120631.GA14105@elte.hu>
2007-03-05 13:28 ` [patch] paravirt: VDSO page is essential Rusty Russell
2007-03-05 13:38 ` Ingo Molnar
2007-03-05 14:34 ` Andi Kleen
2007-03-05 13:48 ` Ingo Molnar
2007-03-05 20:11 ` Zachary Amsden
2007-03-05 20:16 ` Andi Kleen
2007-03-05 20:33 ` Zachary Amsden
2007-03-05 20:19 ` Ingo Molnar
2007-03-05 20:42 ` Zachary Amsden
2007-03-06 0:57 ` Rusty Russell
2007-03-06 1:03 ` Zachary Amsden
2007-03-06 1:11 ` Rusty Russell
2007-03-06 1:14 ` Jeremy Fitzhardinge
2007-03-06 1:51 ` Zachary Amsden
2007-03-06 1:53 ` Jeremy Fitzhardinge
2007-03-06 8:19 ` Xen & VMI? Ingo Molnar
2007-03-06 8:37 ` Gerd Hoffmann
2007-03-06 8:48 ` Zachary Amsden
2007-03-06 8:52 ` Ingo Molnar
2007-03-06 9:03 ` Zachary Amsden
2007-03-06 9:10 ` Ingo Molnar
2007-03-06 9:15 ` Gerd Hoffmann
2007-03-06 9:34 ` Ingo Molnar
2007-03-06 10:15 ` Gerd Hoffmann
2007-03-06 10:26 ` Ingo Molnar
2007-03-06 11:04 ` Gerd Hoffmann
2007-03-06 11:59 ` Ingo Molnar
2007-03-06 12:34 ` Gerd Hoffmann
2007-03-06 15:03 ` Anthony Liguori
2007-03-06 17:17 ` Nakajima, Jun
2007-03-06 17:32 ` Anthony Liguori
2007-03-06 20:37 ` Ingo Molnar
2007-03-06 21:02 ` Jeremy Fitzhardinge
2007-03-06 21:11 ` Ingo Molnar
2007-03-06 21:13 ` Jeremy Fitzhardinge
2007-03-06 21:20 ` Ingo Molnar
2007-03-06 21:46 ` Jeremy Fitzhardinge
2007-03-06 21:35 ` Nakajima, Jun
2007-03-07 0:44 ` Rusty Russell
2007-03-07 0:54 ` Anthony Liguori
2007-03-07 3:06 ` Zachary Amsden
2007-03-07 8:15 ` Ingo Molnar [this message]
2007-03-07 9:17 ` Zachary Amsden
2007-03-07 11:15 ` Thomas Gleixner
2007-03-07 19:14 ` Dan Hecht
2007-03-06 16:27 ` Jeremy Fitzhardinge
2007-03-06 17:11 ` Ingo Molnar
2007-03-06 17:33 ` Jeremy Fitzhardinge
2007-03-07 2:16 ` Zachary Amsden
2007-03-06 9:55 ` Avi Kivity
2007-03-06 10:23 ` Gerd Hoffmann
2007-03-06 10:31 ` Ingo Molnar
2007-03-06 19:46 ` Chris Wright
2007-03-06 20:30 ` Ingo Molnar
2007-03-06 20:53 ` Chris Wright
2007-03-06 21:03 ` Ingo Molnar
2007-03-06 21:28 ` Chris Wright
2007-03-07 2:35 ` Zachary Amsden
2007-03-06 9:07 ` Jeremy Fitzhardinge
2007-03-06 9:26 ` Ingo Molnar
2007-03-06 16:42 ` Jeremy Fitzhardinge
2007-03-06 17:18 ` Ingo Molnar
2007-03-06 18:04 ` Jeremy Fitzhardinge
2007-03-06 7:35 ` [patch] paravirt: VDSO page is essential Ingo Molnar
2007-03-06 7:42 ` Zachary Amsden
2007-03-06 7:50 ` Ingo Molnar
2007-03-06 18:48 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070307081510.GB15111@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=anthony@codemonkey.ws \
--cc=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=roland@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=torvalds@linux-foundation.org \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).