On 30/7/06 11:41, "Rusty Russell" <rusty at rustcorp.com.au> wrote: > I think this has been useful discussion, but I think we're starting to > go in circles. I agree and your proposal is ok, although personally I think it's not a very good solution because (1) is not really true and given the option of doing (3), I think most everybody will pick (3), which makes (1) and (2) obsolete. christian > (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.