-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
RAS: Add a Corrected Errors Collector
Introduce a simple data structure for collecting correctable errors along with accessors. More detailed description in the code itself. The error decoding is done with the decoding chain now and mce_first_notifier() gets to see the error first and the CEC decides whether to log it and then the rest of the chain doesn't hear about it - basically the main reason for the CE collector - or to continue running the notifiers. When the CEC hits the action threshold, it will try to soft-offine the page containing the ECC and then the whole decoding chain gets to see the error. Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-edac <linux-edac@vger.kernel.org> Link: http://lkml.kernel.org/r/20170327093304.10683-5-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
- Loading branch information
Borislav Petkov
authored and
Ingo Molnar
committed
Mar 28, 2017
1 parent
e64edfc
commit 011d826
Showing
10 changed files
with
706 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
obj-$(CONFIG_RAS) += ras.o debugfs.o | ||
obj-$(CONFIG_RAS) += ras.o debugfs.o | ||
obj-$(CONFIG_RAS_CEC) += cec.o |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#ifndef __RAS_DEBUGFS_H__ | ||
#define __RAS_DEBUGFS_H__ | ||
|
||
#include <linux/debugfs.h> | ||
|
||
extern struct dentry *ras_debugfs_dir; | ||
|
||
#endif /* __RAS_DEBUGFS_H__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,25 @@ | ||
#ifndef __RAS_H__ | ||
#define __RAS_H__ | ||
|
||
#include <asm/errno.h> | ||
|
||
#ifdef CONFIG_DEBUG_FS | ||
int ras_userspace_consumers(void); | ||
void ras_debugfs_init(void); | ||
int ras_add_daemon_trace(void); | ||
#else | ||
static inline int ras_userspace_consumers(void) { return 0; } | ||
static inline void ras_debugfs_init(void) { return; } | ||
static inline void ras_debugfs_init(void) { } | ||
static inline int ras_add_daemon_trace(void) { return 0; } | ||
#endif | ||
|
||
#ifdef CONFIG_RAS_CEC | ||
void __init cec_init(void); | ||
int __init parse_cec_param(char *str); | ||
int cec_add_elem(u64 pfn); | ||
#else | ||
static inline void __init cec_init(void) { } | ||
static inline int cec_add_elem(u64 pfn) { return -ENODEV; } | ||
#endif | ||
|
||
#endif /* __RAS_H__ */ |