Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Sep 2002 16:02:44 -0400 (EDT)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-alpha@FreeBSD.org
Subject:   RE: ithread preemption
Message-ID:  <15735.47204.905352.900631@grasshopper.cs.duke.edu>
In-Reply-To: <XFMail.20020905153533.jhb@FreeBSD.org>
References:  <15735.44660.835003.901974@grasshopper.cs.duke.edu> <XFMail.20020905153533.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

John Baldwin writes:
 > 
 > On 05-Sep-2002 Andrew Gallatin wrote:
 > > 
 > > John Baldwin writes:
 > >  > 
 > >  > On 05-Sep-2002 Andrew Gallatin wrote:
 > >  > > 
 > >  > > I've forgotten -- What are the symptoms of ithread preemption causing
 > >  > > troubles on alpha?
 > >  > 
 > >  > Hangs on SMP under load.
 > >  > 
 > >  > > I have one (probably dumb) idea: Is the ithread preemption code
 > >  > > guaranteed to switch back to the preempted thread when the ithread
 > >  > > completes or blocks?  And continue through to the end of the interrupt
 > >  > > dispatch code, returning back to the palcode?
 > >  > 
 > >  > It is not guaranteed to do that.
 > > 
 > > What keeps you from (eventually) running out of kernel stack space
 > > then, as the interrupts keep coming in?
 > 
 > The thread that received the interrupt stays at the high IPL until it
 > returns.  When you switch to another thread you are on another stack
 > and you can take an interrupt ok.  When we switch back to an interrupted
 > thread, it executes at the raised IPL until it returns back to the PAL
 > code.

OK, so the interrupted thread will (eventually) return back to PAL.

But, theoritically, under heavy load we could have lots of threads
preempted.  And lots of interrupts pending which never returned to
PAL.  Are we certain that this doesn't somehow violate assumptions made
by pal?   Does any other OS work like this?

Perhaps we should only allow a small number of preemptions at any one
time.

Drew



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15735.47204.905352.900631>