21 messages in com.xensource.lists.xen-develRe: [Xen-devel] Xen as a kernel module
FromSent OnAttachments
Jacob Gorm Hansen25 Jan 2005 17:23 
Kip Macy25 Jan 2005 17:32 
Jacob Gorm Hansen25 Jan 2005 17:59 
Neugebauer, Rolf25 Jan 2005 18:34 
Jacob Gorm Hansen25 Jan 2005 19:11 
Ronald G. Minnich25 Jan 2005 19:57 
Ronald G. Minnich25 Jan 2005 20:30 
Keir Fraser25 Jan 2005 23:54 
Steven Hand26 Jan 2005 00:41 
Ian Pratt26 Jan 2005 03:41 
Jacob Gorm Hansen26 Jan 2005 15:19 
Mark Williamson27 Jan 2005 05:24 
Mark Williamson27 Jan 2005 05:30 
Tobias Hunger27 Jan 2005 07:04 
Mark Williamson28 Jan 2005 10:31 
Jacob Gorm Hansen28 Jan 2005 12:09 
Ronald G. Minnich28 Jan 2005 12:59 
Jacob Gorm Hansen28 Jan 2005 15:16 
Ronald G. Minnich28 Jan 2005 15:26 
Jacob Gorm Hansen28 Jan 2005 15:28 
Adam Sulmicki28 Jan 2005 18:15 
Subject:Re: [Xen-devel] Xen as a kernel module
From:Jacob Gorm Hansen (jac@diku.dk)
Date:01/28/2005 12:09:20 PM
List:com.xensource.lists.xen-devel

Tobias Hunger wrote:

Right now Xen is mapped somewhere in top of memory, I am not sure how domains are kept out of there, but I suppose it has to do with segments.

As I understand this xen runs in ring0 and pushes the guests kernels one ring up into ring1 and then uses traps to allow the guest OSes to trap into the hypervisor as necessary.

The good thing about that is that hypercalls are cheap, and in Xen1.x I/O was cheap as well.

Cheap where? In dom0 or the VMs?

Both. Assuming that context switching is an expensive operation, and that most of the cost comes from flushing the TLBs, the current model has more overhead than a model where the drivers are mapped into the same address space (though still protected from domU access other that through hypercalls) as the currently running domain. Xen already contains magic that allows it to be permanently mapped into running domains, while still being protected from accidential/malicious access.

I am calling that monolithic, because that is what standard linux does, and what the old Xen 1.x did. The current model is more like a microkernel, such as L4 or Mach (though of course a lot more clever, no offense people ;-))

Apart from perhaps increasing performance, I was saying it would be cool if the Xen-interface could be provided on platforms such as Windows or native Linux. People have done similar stuff before (e.g. VMWare vmmon, the Adeos nanokernel, coLinux), so it should be possible. It seems Xen would have better chances of world domination that way, if that is a goal. It would also save some duplication of effort in porting guestOSes to the different models out there.

Anyway, it was just an idea, and it is likely that with future hardware the Xen NGIO/microkernel model will finally be overhead-free, vendors will start writing Xen-VM drivers, and we will all live happily ever after :-).

Jacob