From owner-freebsd-threads@FreeBSD.ORG Mon Jun 16 15:56:24 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D4A0D37B401 for ; Mon, 16 Jun 2003 15:56:24 -0700 (PDT) Received: from hqemgate00.nvidia.com (hqemgate00.nvidia.com [216.228.112.144]) by mx1.FreeBSD.org (Postfix) with ESMTP id 482D543F3F for ; Mon, 16 Jun 2003 15:56:22 -0700 (PDT) (envelope-from gareth@nvidia.com) Received: from mail-sc-0.nvidia.com (Not Verified[172.16.217.105]) id ; Mon, 16 Jun 2003 15:59:09 -0700 Received: by mail-sc-0.nvidia.com with Internet Mail Service (5.5.2653.19) id ; Mon, 16 Jun 2003 15:55:49 -0700 Message-ID: <2D32959E172B8F4D9B02F68266BE421401A6D7DB@mail-sc-3.nvidia.com> From: Gareth Hughes To: 'Daniel Eischen' Date: Mon, 16 Jun 2003 15:55:48 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain cc: threads@freebsd.org cc: zander@mail.minion.de cc: 'Julian Elischer' cc: Andy Ritger Subject: RE: NVIDIA and TLS X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 22:56:25 -0000 On Mon, 16 Jun 2003, Daniel Eischen wrote: > > 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. I don't think there's a library out there that has the strict performance requirements that OpenGL does. Of course, if FreeBSD supported the ELF TLS standard, this point would be moot because applications and libraries would automatically get fast thread-local storage. If not, and another library really did need the same kind of fast TLS access, what's wrong with just allocating another static block after the libGL one? Your internal data structures would work fine, libGL would work fine because you haven't changed the location of its data block, and the new library would access its data directly. The only problem with this scheme is if you move the block, or change the way it is accessed, this would break binary compatibility. -- Gareth Hughes (gareth@nvidia.com) OpenGL Developer, NVIDIA Corporation