Joshua LeVasseur
2005-May-20 16:38 UTC
[Xen-devel] Pre-virtualization, was Re: linux/arch/xen/i386 or linux/arch/i386/xen
On May 18, 2005, at 17:09, Magenheimer, Dan (HP Labs Fort Collins) wrote:> There have been various discussions on this list about > "transparent paravirtualization", i.e. the ability for > a paravirtualized kernel to run both as a guest of Xen > and on bare metal. This is definitely an objective of > Xen/ia64. Nobody has tried it for Xen/x86, but if it > can be done, I''m sure commercial companies and distros > would be eager to utilize it (one less set of bits to > support).Thanks for the lead-in Dan. As mentioned before on this list, we have an automated, pre-virtualization solution that permits a single binary to execute on bare x86 hardware and on various hypervisors, with good performance. See the original message: http://lists.xensource.com/archives/html/xen-devel/2005-04/msg00163.html We have now released our source code. For our project web page, source code (BSD license), and a script to build everything, see: http://l4ka.org/projects/virtualization/afterburn/ We tried to minimize the overhead for getting started, but we can''t automate the parts that are dependent on the final hardware, and thus some tenacious debug skills may be necessary. Also see the user''s manual. Note that our project does use some concepts of transparent para- virtualization, primarily to deal with higher-level OS concepts. Capturing higher-level OS concepts is particularly useful when mapping guest OS concepts to hypervisor concepts, as is common on more traditional kernels, such as executing at user-level on Linux, Windows NT, and our L4 microkernel. Transparent virtualization isn''t really used on our internal Xen infrastructure (although in our public CVS, it is used a little).> In many ways, a "xen" subdirectory is much more like > a "pci" or "math-emu" subdirectory, than a subarch. > For example, mach-es7000 and xen may need to co-exist > in the same kernel. > > So, mach-xen may be a poor choice. A subtle distinction > perhaps but when dealing with Linux kernel developers, > purity of thinking may avoid future patch submission > arguments.With pre-virtualization, the modifications to the guest OS are very minor. The whole point is to automate the para-virtualization. So for example, a single binary can execute on the Xen hypervisor, or as a user-level Linux application, without using any of the user-mode Linux support currently in Linux, and without requiring the proposed additions to Linux for Xen. -Josh _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Anthony Liguori
2005-May-20 18:52 UTC
Re: [Xen-devel] Pre-virtualization, was Re: linux/arch/xen/i386 or linux/arch/i386/xen
Joshua LeVasseur wrote:> Thanks for the lead-in Dan. As mentioned before on this list, we > have an automated, pre-virtualization solution that permits a single > binary to execute on bare x86 hardware and on various hypervisors, > with good performance. See the original message: > http://lists.xensource.com/archives/html/xen-devel/2005-04/msg00163.html > > We have now released our source code. For our project web page, > source code (BSD license), and a script to build everything, see: > http://l4ka.org/projects/virtualization/afterburn/ > We tried to minimize the overhead for getting started, but we can''t > automate the parts that are dependent on the final hardware, and thus > some tenacious debug skills may be necessary. Also see the user''s > manual. > > Note that our project does use some concepts of transparent para- > virtualization, primarily to deal with higher-level OS concepts. > Capturing higher-level OS concepts is particularly useful when > mapping guest OS concepts to hypervisor concepts, as is common on > more traditional kernels, such as executing at user-level on Linux, > Windows NT, and our L4 microkernel. Transparent virtualization isn''t > really used on our internal Xen infrastructure (although in our > public CVS, it is used a little).Hi Joshua, After looking through the code I have a couple of questions/comments. 1) I noticed that you have a patch to xen-2.0.2. One of the changes was a known gcc bug that''s been worked around in newer versions of 2.0.x. The other changes explicitly disabled SMP and ACPI. Is there a compelling reason to patch xen for this verses just specifying the appropriate command line options to disable these things at run time? 2) The Linux guest changes seem a big more substantial than I expected. Is there a place where you break down what these changes were and why the were necessary? Do you have any idea of the additional amount of work necessary to reduce these changes to as small as humanly possible (perhaps even no changes at all)? Very cool stuff. Regards, Anthony Liguori _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel