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>