* [PATCH] x86, mce: reset kernel for no-match exception errors
@ 2009-08-27 8:41 Jin Dongming
2009-08-27 9:08 ` Andi Kleen
0 siblings, 1 reply; 2+ messages in thread
From: Jin Dongming @ 2009-08-27 8:41 UTC (permalink / raw)
To: H.Peter Anvin
Cc: LKLM, Ingo Molnar, Andi Kleen, Huang Ying, Kenji Kaneshige,
Hidetoshi Seto
The last case of severity table is used for no match exception error.
Maybe such kind of error could not happen. But I think when the error
really happened, the kernel should be reset. Because such error is
unknown and unexpected. So I make this patch for fixing this problem.
This patch is based on tip/x86/mce.
Signed-off-by: Jin Dongming <jin.dongming@np.css.fujitsu.com>
---
arch/x86/kernel/cpu/mcheck/mce-severity.c | 2 +-
arch/x86/kernel/cpu/mcheck/mce.c | 6 ++++++
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c
index bc35a07..092755b 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-severity.c
+++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c
@@ -97,7 +97,7 @@ static struct severity {
"Action optional with lost events", SER),
BITSET(MCI_STATUS_UC|MCI_STATUS_OVER, PANIC, "Overflowed uncorrected"),
BITSET(MCI_STATUS_UC, UC, "Uncorrected"),
- BITSET(0, SOME, "No match") /* always matches. keep at end */
+ BITSET(0, PANIC, "Unknown Error") /* always matches. keep at end */
};
/*
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 2c3bcd1..cc6e9cb 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -245,6 +245,12 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
struct mce *m = &mcelog.entry[i];
if (!(m->status & MCI_STATUS_VAL))
continue;
+ /*
+ * When no-match error happened, it is a corrected error and
+ * logged as final one. Prevents it from being printed twice.
+ */
+ if (final && !memcmp(m, final, sizeof(struct mce)))
+ continue;
if (!(m->status & MCI_STATUS_UC))
print_mce(m);
}
--
1.6.2.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] x86, mce: reset kernel for no-match exception errors
2009-08-27 8:41 [PATCH] x86, mce: reset kernel for no-match exception errors Jin Dongming
@ 2009-08-27 9:08 ` Andi Kleen
0 siblings, 0 replies; 2+ messages in thread
From: Andi Kleen @ 2009-08-27 9:08 UTC (permalink / raw)
To: Jin Dongming
Cc: H.Peter Anvin, LKLM, Ingo Molnar, Huang Ying, Kenji Kaneshige,
Hidetoshi Seto
Jin Dongming wrote:
> The last case of severity table is used for no match exception error.
> Maybe such kind of error could not happen. But I think when the error
> really happened, the kernel should be reset. Because such error is
> unknown and unexpected. So I make this patch for fixing this problem.
I don't think panicing for a non-signalled error is the correct action.
In general I tried to be conservative regarding panics, this seems
to be too liberal with them.
-Andi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-08-27 9:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-27 8:41 [PATCH] x86, mce: reset kernel for no-match exception errors Jin Dongming
2009-08-27 9:08 ` Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox