Date: Fri, 1 Aug 2003 01:47:54 -0400 From: Mike Makonnen <mtm@identd.net> To: tejun@aratech.co.kr Cc: freebsd-threads@freebsd.org Subject: Re: And problems regarding -lthr (1:1 KSE) Message-ID: <20030801054754.GA30332@kokeb.ambesa.net> In-Reply-To: <20030801031708.GA2128@atj.dyndns.org> References: <20030801031708.GA2128@atj.dyndns.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030801054754.GA30332>