This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: FOR REVIEW: New x86-64 vsyscall vgetcpu()
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Andi Kleen <ak at suse dot de>
- Cc: Zoltan Menyhart <Zoltan dot Menyhart at bull dot net>, Jes Sorensen <jes at sgi dot com>, Tony Luck <tony dot luck at intel dot com>, discuss at x86-64 dot org, linux-kernel at vger dot kernel dot org, libc-alpha at sourceware dot org, vojtech at suse dot cz, linux-ia64 at vger dot kernel dot org
- Date: Fri, 16 Jun 2006 17:58:04 +0200
- Subject: Re: FOR REVIEW: New x86-64 vsyscall vgetcpu()
- References: <200606140942.31150.ak@suse.de> <200606161656.40930.ak@suse.de> <4492CEC0.2080102@bull.net> <200606161737.06132.ak@suse.de>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Fri, Jun 16, 2006 at 05:37:06PM +0200, Andi Kleen wrote:
> On Friday 16 June 2006 17:31, Zoltan Menyhart wrote:
> > Andi Kleen wrote:
> >
> > > That is not how user space TLS works. It usually has a base a register.
> >
> > Can you please give me a real life (simplified) example?
>
> On x86-64 it's just %fs:offset. gcc is a bit dumb on this and usually
> loads the base address from %fs:0 first.
GCC is not dumb, unless you force it with -mno-tls-direct-seg-refs.
Guess you are bitten by SUSE GCC hack which makes -mno-tls-direct-seg-refs
the default (especially on x86-64 it is a really bad idea).
Jakub