From owner-freebsd-current@FreeBSD.ORG Fri Feb 6 13:32:18 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 23A9B16A4CE for ; Fri, 6 Feb 2004 13:32:18 -0800 (PST) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 71D9843D54 for ; Fri, 6 Feb 2004 13:32:16 -0800 (PST) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.10/8.12.1) with ESMTP id i16LW9fo026137; Fri, 6 Feb 2004 16:32:09 -0500 (EST) Date: Fri, 6 Feb 2004 16:32:09 -0500 (EST) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Julian Elischer In-Reply-To: <200402062121.NAA32194@InterJet.elischer.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Kris Kennaway cc: Hye-Shik Chang cc: current@FreeBSD.org Subject: Re: python ports broken (sem_destroy: Resource temporarily 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: Fri, 06 Feb 2004 21:32:18 -0000 On Fri, 6 Feb 2004, Julian Elischer wrote: > > On Fri, 6 Feb 2004, Daniel Eischen wrote: > > > On Fri, 6 Feb 2004, Daniel Eischen wrote: > > > > > On Sat, 7 Feb 2004, Hye-Shik Chang wrote: > > > > > > > > Thank you very much! > > > > py-bsddb unittest is successfully passed with your fixes. And almost > > > > all of python regression test set is okay except test_threaded_import. > > > > > > > > alice(perky):/usr/local/lib/python2.3/test% sudo python test_threaded_import.py > > > > Trying 20 threads ... OK. > > > > Trying 50 threads ... > > > > Traceback (most recent call last): > > > > File "test_threaded_import.py", line 56, in ? > > > > test_main() > > > > File "test_threaded_import.py", line 50, in test_main > > > > thread.start_new_thread(task, ()) > > > > thread.error: can't start new thread > > > > > > > > FYI, python's thread creation routine is located on > > > > work/Python-2.3.3/Python/thread_pthread.h:188. > > > > > > How many threads does it try after "Trying 50 threads..."? You > > > may have to increase kern.threads.max_threads_per_proc. > > > > Arghh. It's creating system scope threads, so you have > > to adjust kern.threads.max_groups_per_proc. > > Why? System scope threads each have their own KSEG/KSE pair. The default thread limits in the kernel are: kern.threads.max_threads_per_proc: 150 kern.threads.max_groups_per_proc: 50 By default there are 2 KSEGs for a threaded process in libpthread: one for scope process threads and one for the signal handling thread. That leaves 48 for left for application use. Those limits are arbitrary, so you can raise/lower them if you don't like them. I thought you came up with those limits ;-) -- Dan Eischen