Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Sep 2002 22:14:43 +0200
From:      Bernd Walter <ticso@cicely9.cicely.de>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: ithread preemption
Message-ID:  <20020905201443.GD13050@cicely9.cicely.de>
In-Reply-To: <15735.47204.905352.900631@grasshopper.cs.duke.edu>
References:  <15735.44660.835003.901974@grasshopper.cs.duke.edu> <XFMail.20020905153533.jhb@FreeBSD.org> <15735.47204.905352.900631@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Sep 05, 2002 at 04:02:44PM -0400, Andrew Gallatin wrote:
> 
> 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.

OK - I have some basic understandig problems here.

Why should ithreads ever return to PAL?
Why is IPL raised while an ithread is running?

From what I understood before the interrupt handler, which is called
from PAL, just triggers the ithread, block the intline and returns.

> 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.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de


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?20020905201443.GD13050>