NVIDIA and TLS

Daniel Eischen eischen at vigrid.com
Wed Jun 18 12:51:14 PDT 2003


On Sat, 14 Jun 2003, Andy Ritger wrote:
> The current NVIDIA FreeBSD driver only supports one threading library
> on FreeBSD for thread-safe, multi-threaded OpenGL applications: the
> FreeBSD port of linux-threads. The NVIDIA FreeBSD OpenGL driver uses
> both the i386_set_ldt system call and %gs to support high performance
> native OpenGL applications.

One question.  How does using %gs work in libc_r?  Thread switches
in libc_r use setjmp()/longjmp() neither of which save and restore
%gs.  If OpenGL sets %gs, libc_r will not change it when threads are
switched.  

Is NVIDIA's OpenGL suppose to be thread-safe for libc_r?  I don't
see how it can be.  What am I missing?

-- 
Dan Eischen



More information about the freebsd-threads mailing list