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

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

 



On Fri, 2006-07-28 at 13:45 -0700, Zachary Amsden wrote:
> Jeremy Fitzhardinge wrote
> >
> >> Why do you insist that Xen have a separate kernel entry point?
> >
> > Because if you're going to distinguish hypervisors by putting a magic 
> > value in a register, you get the best bang for the buck if the 
> > register is EIP.
> 
> I think the larger issue that Eric pointed out is that there is only a 
> single entry field in the ELF header.

I think this has been useful discussion, but I think we're starting to
go in circles.

(1) We can make startup_32 work for every known and future reasonable
hypervisor as well as native, by testing if ring isn't 0 and paging is
enabled and jumping to the paravirt entry path.

(2) Xen 3.0's boot process uses %esi and sets all other regs to 0.  We
should not break this.  If we use %ebx to indicate what paravirt_ops to
use, and assign Xen 0, this works fine.  We only clobber %ebx, %eax and
%esp before calling paravirts[%ebx]->init().

(3) If a hypervisor wants another entry point, this scheme doesn't
prohibit it, of course.  If every hypervisor does this, we've wasted
some effort, but not for lack of trying.

My question for Eric is: will this fit with kexec (which I know v.
little about)?

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