Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jun 2003 18:28:31 -0400 (EDT)
From:      Daniel Eischen <eischen@pcnet.com>
To:        Gareth Hughes <gareth@nvidia.com>
Cc:        Andy Ritger <ARitger@nvidia.com>
Subject:   RE: NVIDIA and TLS
Message-ID:  <Pine.GSO.4.10.10306161820140.11847-100000@pcnet5.pcnet.com>
In-Reply-To: <2D32959E172B8F4D9B02F68266BE421401A6D7D1@mail-sc-3.nvidia.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mon, 16 Jun 2003, Gareth Hughes wrote:

> On Mon, 16 Jun 2003, Julian Elischer wrote:
> > 
> > It wouldn't take much for us to give you a "application specific
> > pointer" in the memory block that is pointed to by %gs.
> > 
> > This would allow you to find your data with a single dereference
> > for the N:N threads library..
> > 
> > %gs ----->[threadsystem-thread-specific-data]
> >           [ stuff                           ]
> >           [ ap-specific pointe              ]---->[ your data ]
> >                                                   [           ]
> > 
> > BUT
> > that would only work for the 1:1 threading library
> 
> What's wrong with:
> 
> %gs ----->[threadsystem-thread-specific-data     ]
>           [ stuff                                ]
>           [libGL stuff (fixed size, known offset)]

%gs is for the KSE in libkse.  Multiple threads can run
in the same KSE.

> Or, better yet, to make sure no problems arise when you change the internals
> of your data structures:
> 
> %gs ----->[libGL stuff (16 words, say)      ]
>           [threadsystem-thread-specific-data]
>           [ stuff                           ]
> 
> You reserve the first 16 words of your thread data structure for us, and
> we're done.  At least when this library is being used.

Again, %gs isn't per-thread; it's per-KSE.  Plus, we're reserving
TLS for one vendor/library.  What happens when someone else comes
along and wants the same thing?  I'd much rather see someone push
for a new OpenGL spec with better interfaces/APIs.

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10306161820140.11847-100000>