From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A71C0DE284 for ; Tue, 29 Apr 2008 04:06:44 +1000 (EST) Message-Id: From: Kumar Gala To: Scott Wood In-Reply-To: <20080428170418.GA11378@ld0162-tx32.am.freescale.net> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Mime-Version: 1.0 (Apple Message framework v919.2) Subject: Re: suggestions on handling additional exception levels on ppc32 Date: Mon, 28 Apr 2008 13:06:25 -0500 References: <20080428155928.GE9849@ld0162-tx32.am.freescale.net> <20080428170418.GA11378@ld0162-tx32.am.freescale.net> Cc: "linuxppc-dev@ozlabs.org list" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Apr 28, 2008, at 12:04 PM, Scott Wood wrote: > On Mon, Apr 28, 2008 at 11:58:58AM -0500, Kumar Gala wrote: >> >> On Apr 28, 2008, at 10:59 AM, Scott Wood wrote: >>> On Mon, Apr 28, 2008 at 10:40:56AM -0500, Kumar Gala wrote: >>>> A few possibilities: >>>> * introduce an additional function pointer as part of >>>> EXC_XFER_TEMPLATE() to specifies the type of handler (normal, crit, >>>> dbg, mcheck) >>>> * use the traps field low order bits to determine normal, crit, >>>> dbg, >>>> mcheck at run time. >>>> * duplicate the code paths for each exception level >>>> >>>> suggestions? >>> >>> You could temporarily disable all asynchronous exceptions, and use >>> the >>> registers of the highest-priority exception type. >> >> That doesn't work. We have NMIs or will have them in the future. > > Truly non-maskable? Ick. You could have a separate code path just > for > the exception type that NMIs use, I guess, if there's a clear > highest-priority among the remaining interrupt types. What sort of > exceptions are they? The NMIs are machine check only so a separate path for them isn't a terrible idea. However, disabling all other interrupts seems worse than adding a function pointer. - k