From owner-freebsd-threads@FreeBSD.ORG Thu Jul 31 22:48:09 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 31A9737B401 for ; Thu, 31 Jul 2003 22:48:09 -0700 (PDT) Received: from pool-151-200-10-97.res.east.verizon.net (pool-138-88-5-64.res.east.verizon.net [138.88.5.64]) by mx1.FreeBSD.org (Postfix) with ESMTP id 946F643FB1 for ; Thu, 31 Jul 2003 22:48:07 -0700 (PDT) (envelope-from mtm@identd.net) Received: from kokeb.ambesa.net (fzud4e22zjigjz0g@localhost [127.0.0.1]) id h715ltJO030383; Fri, 1 Aug 2003 01:47:55 -0400 (EDT) (envelope-from mtm@identd.net) Received: (from mtm@localhost) by kokeb.ambesa.net (8.12.9/8.12.9/Submit) id h715lsBI030382; Fri, 1 Aug 2003 01:47:54 -0400 (EDT) (envelope-from mtm@identd.net) X-Authentication-Warning: kokeb.ambesa.net: mtm set sender to mtm@identd.net using -f Date: Fri, 1 Aug 2003 01:47:54 -0400 From: Mike Makonnen To: tejun@aratech.co.kr Message-ID: <20030801054754.GA30332@kokeb.ambesa.net> References: <20030801031708.GA2128@atj.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030801031708.GA2128@atj.dyndns.org> User-Agent: Mutt/1.4.1i X-Operating-System: FreeBSD/5.1-CURRENT (i386) cc: freebsd-threads@freebsd.org Subject: Re: And problems regarding -lthr (1:1 KSE) 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: Fri, 01 Aug 2003 05:48:09 -0000 On Fri, Aug 01, 2003 at 12:17:08PM +0900, TeJun Huh wrote: > I forgot to mention about -lthr (1:1 KSE threading) related problems. > > 1. If the program is compiled with '-static -lthr', the program > crashes at the first thread creation. Stack trace follows. Are you using 5.1-RELEASE or -CURRENT ? I think this has already been fixed in -CURRENT. > 2. Without -static, the program works fine, but pthread_create() > fails with EAGAIN at thread count 110. B.T.W. pthread_create() return > value handling was wrong in the example program. It always confuses > me. :-( How can I increase this limit? Again, I'm looking for > something like ten thousands. This is problematic because on i386, libthr uses the LDTs, which are limited to 9182. But if I'm not mistaken the first NLDT (17) entries are already in use so in reality you can have only (9182 - NLDT) threads. You can do this by changing MAXTHR in src/lib/libthr/arch/i386/i386/_setcurthread.c. You might also want to bump up UMTX_QUEUES in src/sys/kern/kern_umtx.c if you do that. I am not aware of any limits on alpha or sparc64 (but then I'm not knowledgeable about either :) BTW, libthr uses some of the same code as KSE, but it is not based on KSE. Cheers. -- Mike Makonnen | GPG-KEY: http://www.identd.net/~mtm/mtm.asc mtm@identd.net | D228 1A6F C64E 120A A1C9 A3AA DAE1 E2AF DBCC 68B9 mtm@FreeBSD.Org| FreeBSD - Unleash the Daemon!