Jeremy Fitzhardinge wrote: > Rusty Russell wrote: >> It sounds fine to me, although I'd like to see the patch. I don't have >> anything against higher-level abstractions, if it helps any hypervisor, >> as long as it doesn't warp the kernel code. And if most hypervisors and >> native break it down the same way, well, we can always create helpers. >> > > Doing it this way does save a lot of complexity in the Xen case, which > would otherwise have to: > > 1. unpack the descriptor > 2. if it's an LDT, save it off in a per-cpu structure > 3. when load_ldt_desc is called, look up the structure, extract the > base+size of the ldt, and make a hypercall to set the ldt > > vs > > 1. set the ldt This way works for us as well, but my opinion is - Xen deliberately broke the x86 interface here, for no strong reason. In an ideal world, we shouldn't have to change Linux to work around that, nor should other hypervisors have to live with the consequences of that decision. So I believe the onus is on Xen to fix the problem in their layer, not the other way around. But I have no problem adapting to this way of doing things for now, since this is not performance critical, and LDT is barely used in Linux anyway, even then, mostly by unsupported applications in a paravirtualized world. Zach