From owner-freebsd-current@FreeBSD.ORG Sun Aug 15 09:24:02 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B3F8016A4CE for ; Sun, 15 Aug 2004 09:24:02 +0000 (GMT) Received: from itchy.rabson.org (mailgate.nlsystems.com [80.177.232.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id C248A43D46 for ; Sun, 15 Aug 2004 09:24:01 +0000 (GMT) (envelope-from dfr@nlsystems.com) Received: from ns0.nlsystems.com (ns0.nlsystems.com [80.177.232.243]) by itchy.rabson.org (8.12.11/8.12.11) with ESMTP id i7F9Nqtu070691; Sun, 15 Aug 2004 10:23:53 +0100 (BST) (envelope-from dfr@nlsystems.com) From: Doug Rabson To: Stefan Ehmann Date: Sun, 15 Aug 2004 10:24:06 +0100 User-Agent: KMail/1.6.2 References: <200408141934.24107.dfr@nlsystems.com> <20040815025601.522b2f7c.manlix@demonized.net> <1092559179.756.7.camel@taxman> In-Reply-To: <1092559179.756.7.camel@taxman> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200408151024.06247.dfr@nlsystems.com> X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on itchy.rabson.org X-Virus-Scanned: clamd / ClamAV version 0.75.1, clamav-milter version 0.75c on itchy.rabson.org X-Virus-Status: Clean cc: Johan Pettersson cc: freebsd-current@freebsd.org Subject: Re: New nvidia drivers available X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Aug 2004 09:24:02 -0000 On Sunday 15 August 2004 09:39, Stefan Ehmann wrote: > On Sun, 2004-08-15 at 02:56, Johan Pettersson wrote: > > On Sat, 14 Aug 2004 19:34:24 +0100 > > > > Doug Rabson wrote: > > > The latest 6113 build of the nvidia graphics drivers has just > > > appeared > > > > > > on nvidia's web site. Check out > > > http://www.nvidia.com/object/freebsd_1.0-6113.html if you are > > > currently using the nvidia proprietary drivers. This driver works > > > nicely on FreeBSD-current and while this version is not > > > thread-safe, it does not conflict with libpthread or libthr's use > > > of %gs so you don't have to map everything down to libc_r any > > > more :-). > > > > > > There will be a thread-safe driver available for FreeBSD-current > > > sometime after I commit the pthread parts of the TLS support > > > code. > > > > Im running the new driver on a recent -CURRENT and xorg 6.7.0. When > > starting zsnes I get this: > > > > beard ~> zsnes > > Fatal error 'Exceeded maximum lock level' at line 261 in file > > /usr/src/lib/libpthread/thread/thr_cancel.c (errno = 0) Bus error > > (core dumped) > > beard ~> > > Same error message here when starting neverball. If I map > libpthread->libc_r it's working again. > > xawtv also stopped working. Fortunately setting -xvport manually did > fix that. This might be because libGL calls libpthread's version of open() before libpthread has initialised properly. This patch might fix it - it fixes neverball's map compiler for me but I haven't actually run neverball itself. Index: thr_kern.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_kern.c,v retrieving revision 1.109 diff -u -r1.109 thr_kern.c --- thr_kern.c 7 Aug 2004 15:15:38 -0000 1.109 +++ thr_kern.c 8 Aug 2004 09:57:55 -0000 @@ -2382,7 +2382,7 @@ if ((thread == NULL) && ((thread = malloc(sizeof(struct pthread))) != NULL)) { bzero(thread, sizeof(struct pthread)); - if ((thread->tcb = _tcb_ctor(thread)) == NULL) { + if ((thread->tcb = _tcb_ctor(thread, curthread == NULL)) == NULL) { free(thread); thread = NULL; } else { Index: thr_open.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_open.c,v retrieving revision 1.16 diff -u -r1.16 thr_open.c --- thr_open.c 9 Dec 2003 02:20:56 -0000 1.16 +++ thr_open.c 15 Aug 2004 09:19:42 -0000 @@ -45,11 +45,15 @@ int __open(const char *path, int flags,...) { - struct pthread *curthread = _get_curthread(); + struct pthread *curthread; int ret; int mode = 0; va_list ap; + if (_thr_initial == NULL) + _libpthread_init(NULL); + + curthread = _get_curthread(); _thr_cancel_enter(curthread); /* Check if the file is being created: */