[PATCH 2.4] TLB error recovery (take 2)

From: Luck, Tony <tony.luck_at_intel.com>
Date: 2003-06-26 08:47:15
Thanks for all the excellent feedback on the first iteration
of this patch (posted May 28) to enable recovery from MCA due
to TLB errors.

Here is a new version changed to address those issues.

Changes since last time:

1) Biggest change is to recode the routine that does the actual
purge and reload of the TR registers in assembler to avoid issues
with compilers (or compiler switches) generating code that will
not run in physical mode.  [Thanks Keith for pointing this out]

2) As a result of change '1' the data structure in which we save
the information needed for the reload has been pared down to just
include data for the IA64_TR_PALCODE and IA64_TR_PERCPU_DATA
registers, since the others are either hard-coded or derived from
kernel registers.  This array is indexed by Linux logical cpu number
when we initialize entries, but we also save "cr.lid" for each
processor so that the physical mode code can find the right entry
[If someone can show me a simple way to come up with the linux
logical cpu number from physical mode code, then we can simplify
this a lot]

3) The previous patch unconditionally purged and reloaded the TLB, this
one checks the 'tr' bit of the processor state parameter (passed by PAL
to SAL and on to the OS) to determine whether a fix is needed.

4) The previous version unconditionally set a return status of
IA64_MCA_CORRECTED. This version still sets IA64_MCA_COLD_BOOT
if there are any other errors.

5) I split out the code to restrict the register printout to just the
implemented registers into a separate patch (as all the print code
should be removed from the kernel ... and this patch applied to Bjorn's
"salinfo" utility).

-Tony

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Wed Jun 25 18:48:51 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:15 EST