From owner-freebsd-current Thu Oct 29 07:07:36 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id HAA04334 for freebsd-current-outgoing; Thu, 29 Oct 1998 07:07:36 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from pcnet1.pcnet.com (pcnet1.pcnet.com [204.213.232.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id HAA04321 for ; Thu, 29 Oct 1998 07:07:33 -0800 (PST) (envelope-from eischen@vigrid.com) Received: (from eischen@localhost) by pcnet1.pcnet.com (8.8.7/PCNet) id KAA02424; Thu, 29 Oct 1998 10:07:20 -0500 (EST) Date: Thu, 29 Oct 1998 10:07:20 -0500 (EST) From: Daniel Eischen Message-Id: <199810291507.KAA02424@pcnet1.pcnet.com> To: current@FreeBSD.ORG, info@highwind.com Subject: Re: Thread Scheduler bug Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > I'm worried about the thread scheduler. Here is a disturbing test > program out for folks to try. > > As you can probably guess, we are now battling the scheduler because > some of our application's threads are getting seriously starved by > other threads. > > I'm compiling on 3.0 with the latest libc_r. > > This program works fine on IRIX, Solaris, and (gasp..) Linux. > > Isn't FreeBSD supposed to handle this without the explicit yield() call? It looks like setitimer isn't working as the threads library expects it to. The timer isn't going off, but it seems to be set properly. If you manually kill -VTALRM the running process, you'll see the markTimeThread run. I placed a print statement in the threads library where the timer is set, and it is being called with the proper values (100msec time slice). Why does heavy IO stop the timer from going off and the process from being signaled? Dan Eischen eischen@vigrid.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message