[RFC] First (incomplete) cut of Xen paravirt binding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've updated the patches at 
http://ozlabs.org/~rusty/paravirt/?mf=33ba6c4fce13;path=/ to carve out 
the basic shape of how I see all this fitting together.

These patches implement an initial set of Xen paravirt ops, as well as 
adapting head.S to set up a Xen-specific entrypoint.  The head.S code 
does absolutely minimal setup, and then calls xen_start_kernel().  This 
installs the Xen paravirt ops, does some CPUID setup which would 
normally be done in head.S, calls set_fixaddr_top(), and then calls the 
normal start_kernel().

These patches compile, but are completely untested (though I recently 
booted it native on qemu, so it isn't completely broken).  The Xen 
entrypoints are very incomplete; so far I've only done the trivial ones, 
including the ones which end up just using the native nopara 
implementations (which I've exported out of paravirt.c).

I'm about to start on implementing the more substantial paravirt ops 
relating to interrupts, segmentation, and everything else needed to get 
to a minimally functioning kernel.

I also haven't really gone over the list of paravirt ops in detail to 
see if they're really what we want; I figure that will come up as I keep 
adapting Xen to the interface.  But an obvious seems to be we should 
have explicit flush_tlb/multicast_flush_tlb calls rather than simply 
relying on reloading cr3.

Comments?  Does this look like the way we want to go?  So far it has 
been coming together very nicely...

    J

(Rusty, it would be convienient if you enabled .tar.gz/.zip downloading 
in the hg server: put "allow_archive = gz, zip" in the [web] part of hgrc.)


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux