Subject: Re: Xen, PAE, and NetBSD
To: None <port-xen@NetBSD.org>
From: Jed Davis <jdev@panix.com>
List: port-xen
Date: 02/25/2007 19:07:56
Matthias Scheler <tron@zhadum.org.uk> writes:
> On Sun, Feb 11, 2007 at 12:25:10AM -0500, Todd Vierling wrote:
>> Runs fine on a PAE mode 32-bit Linux host that you do not have the
>> option to reconfigure?
>
> Out of technical curiosity:
> Why does a domU have to support PAE? AFAIK the page table is managed by
> the Hypervisor. Is the interface to the Hypervisor so badly designed
> that it can't hide such details?
The page table is managed by the domain; it's just that writes to it
have to be checked by the hypervisor in order to maintain security.
So, the domain maps the page table read-only, and can then read from
it, including the referenced/modified bits maintained by the MMU, as
efficiently as any other memory. And, while writes do require a
hypercall, many of them can be queued up and flushed with one call.
The design philosophy here, as I understand it, is that the hypervisor
should do the minimum necessary to securely and fairly multiplex the
hardware, and that further abstraction be left to the guest OS, which
will know best what kind of abstraction it wants. (In fact, it does
less than that, because I/O devices are handled by a privileged
domain.) It's similar to the goal of a microkernel or exokernel
system, though details differ.
--
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))