Messages in this thread | | | Date | Wed, 6 Feb 2002 10:12:31 -0500 | From | Jakub Jelinek <> | Subject | Re: kernel: ldt allocation failed |
| |
On Wed, Feb 06, 2002 at 04:02:25PM -0200, Denis Vlasenko wrote: > On 6 February 2002 11:19, Andi Kleen wrote: > > Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> writes: > > > I am ignorant on the subject, but why LDT is used in Linux at all? > > > LDT register can be set to 0, this can speed up task switch time and save > > > some memory used for LDT. > > > > glibc thread local data uses an LDT for the segment register. > > > > glibc 2.3 seems to plan to use segment register based thread local data for > > even non threaded programs, so it would be a good idea to optimize LDT > > allocation a bit (= not allocate 64K of vmalloc space every time > > sys_modify_ldt is called - there is only 8MB of it) > > What do they use on arches without LDT or equivalent?
Most sane architectures reserve a thread pointer register (%g6 resp. %g7 on sparc, tp on ia64, ppc will use %r2, alpha uses a fast pall call as thread "register", s390 uses user access register 0 (and s390x uar 0 and 1), etc.). On register starved ia32 there aren't too many spare registers, so %gs is used instead.
Jakub - 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/
| |