From owner-freebsd-threads@FreeBSD.ORG Sun Jul 11 15:16:04 2004 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 C3FCC16A4CE for ; Sun, 11 Jul 2004 15:16:04 +0000 (GMT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6637E43D3F for ; Sun, 11 Jul 2004 15:16:04 +0000 (GMT) (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 i6BFFspQ023230; Sun, 11 Jul 2004 11:15:54 -0400 (EDT) Date: Sun, 11 Jul 2004 11:15:54 -0400 (EDT) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Julian Elischer In-Reply-To: <20040710214817.O33743-100000@idiom.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Andrew Gallatin cc: freebsd-threads@freebsd.org Subject: Re: pthread switch (was Odd KSE panic) 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: Sun, 11 Jul 2004 15:16:04 -0000 On Sat, 10 Jul 2004, Julian Elischer wrote: > > On Thu, 8 Jul 2004, Daniel Eischen wrote: > > > Wewll, I just took a look at this. I had already added a preemption > > point in pthread_mutex_unlock(): > > > > $ cvs log -r1.38 lib/libpthread/thread/thr_mutex.c > > ... > > description: > > ---------------------------- > > revision 1.38 > > date: 2003/07/18 02:46:29; author: deischen; state: Exp; lines: +10 -6 > > Add a preemption point when a mutex or condition variable is > > handed-off/signaled to a higher priority thread. Note that when > > there are idle KSEs that could run the higher priority thread, > > we still add the preemption point because it seems to take the > > kernel a while to schedule an idle KSE. The drawbacks are that > > threads will be swapped more often between CPUs (KSEs) and > > that there will be an extra userland context switch (the idle > > KSE is still woken and will probably resume the preempted > > thread). We'll revisit this if and when idle CPU/KSE wakeup > > times improve. > > > > Note that the priority of a runnable thread must be strictly greater > > than the currently running thread in order for preemption to occur. > > So all Drew should have to do is increas the priority of teh correct > thread to get it to switch at that point. Yes. -- Dan Eischen