[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] 32bit/PAE guest on 64bit hypervisor work
>>> Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> 21.08.06 12:52 >>> >On 21/8/06 11:19 am, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote: > >> While originally I expected to get at least the fundamentals of this done >> without need to change the ABI in any form, I quickly ran into issues with >> the GDT layout (since the guest usable selectors are published I consider >> them part of the ABI): Obviously, the selector values used to run a 32bit >> guest should match those of the 32bit hv, and hence the GDT layout >> needs to be changed for the 64bit hv. This is despite context switches >> between 32bit and 64bit guests needing to switch the GDT, since >> __HYPERVISOR_DS32 overlaps 32bit's FLAT_RING1_CS32. The GDT >> switching itself will be necessary because the 32bit guest must not be >> able to use FLAT_RING3_CS64. > >This doesn't sound like a showstopper to me. We just move __HYPERVISOR_DS32 It's not a showstopper - I didn't mean to sound like that. >to a different location on x86/64 (it's not part of the ABI). Then we That won't work I think - syscall needs __HYPERVISOR_CS64 and __HYPERVISOR_DS32 to be adjacent. I'm rather moving __HYPERVISOR_CS32 out of the way right now, and move the other two up by one entry. >context switch entries 3,4,5,6 of the GDT. In fact entry 3 can perhaps stay >as ring-1 code, and we only need to switch entries 4,5,6. Hmm, that would mean per-CPU GDTs. I'm right now creating a second GDT, and map into the guest's page tables the appropriate one. On a context switch, the most that should be needed on top of what's done today then is to flush the one page from the TLB (I didn't check that, but I suppose it's a global translation). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |