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

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

 



On Wed, 2006-07-26 at 10:56 -0700, Jeremy Fitzhardinge wrote:
> 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().

Cool!

	I want to make three changes to this over time:

1) Copy the ops structure in the asm, based on value of %ebx (0 == xen,
etc).  Only copy the non-NULL entries, to make implementing ops simple
(eg. Xen doesn't want to override all ops).  Xen wants %esi, so I might
have to move that to %eax: I'll see how it works out.

2) Call *paravirt_ops.init rather than hardcoded xen_start_kernel.

3) Rename from xen-head.S to paravirt-head.S.

> 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.

Yep, and I thought about set_tss_desc, rather than lower-level ops,
because Xen doesn't want it at all.  But see how you go..

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

Agreed!

> (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.)

Done (your instructions were not quite right, but the man page worked
wonders!).

Thanks,
Rusty.
-- 
Help! Save Australia from the worst of the DMCA: http://linux.org.au/law



[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