Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Sep 2002 16:31:07 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        ticso@cicely.de
Cc:        freebsd-alpha@FreeBSD.ORG, Andrew Gallatin <gallatin@cs.duke.edu>
Subject:   Re: ithread preemption
Message-ID:  <XFMail.20020905163107.jhb@FreeBSD.org>
In-Reply-To: <20020905201443.GD13050@cicely9.cicely.de>

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

On 05-Sep-2002 Bernd Walter wrote:
> 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.

Yes, but when you throw preemption into the mix you can switch to the
actual ithread when you schedule it, and you don't return to the original
interrupted thread until later.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

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?XFMail.20020905163107.jhb>