Re: kernel: ldt allocation failed

From: Jakub Jelinek (jakub@redhat.com)
Date: Wed Feb 06 2002 - 10:12:31 EST


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/



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:50 EST