Messages in this thread | | | Date | Wed, 22 Mar 2006 15:54:44 -0800 | From | Zachary Amsden <> | Subject | Re: [RFC, PATCH 1/24] i386 Vmi documentation II |
| |
Andi Kleen wrote: > On Wednesday 22 March 2006 23:45, Zachary Amsden wrote: > > >> I propose an entirely different approach - use segmentation. >> > > That would require a lot of changes to save/restore the segmentation > register at kernel entry/exit since there is no swapgs on i386. > And will be likely slower there too and also even slow down the > VMI-kernel-no-hypervisor. >
There are no changes required to the kernel entry / exit paths. With save/restore segment support in the VMI, reserving one segment for the hypervisor data area is easy.
I take it back. There is one required change:
kernel_entry: hypervisor_entry_hook sti .... kernel code
This hypervisor_entry_hook can be a nop on native hardware, and the following for Xen:
push %gs mov CPU_HYPER_SEL, %gs pop %gs:SAVED_USER_GS
You already have the IRET / SYSEXIT hooks to restore it on the way back. And now you have a segment reserved that allows you to deal with 16-bit stack segments during the IRET.
> Still might be the best option. > > How did that rumoured Xenolinux-over-VMI implementation solve that problem? >
!CONFIG_SMP -- as I believe I saw in the latest Xen patches sent out as well? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |