diff options
author | Huang Ying <ying.huang@intel.com> | 2011-07-13 13:14:27 +0800 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-08-03 11:15:58 -0400 |
commit | ea8f5fb8a71fddaf5f3a17100d3247855701f732 (patch) | |
tree | 052c3f7e699745394a35063d2a58c4ef0995f3c5 /include/linux | |
parent | 152cef40a808d3034e383465b3f7d6783613e458 (diff) | |
download | linux-3.10-ea8f5fb8a71fddaf5f3a17100d3247855701f732.tar.gz linux-3.10-ea8f5fb8a71fddaf5f3a17100d3247855701f732.tar.bz2 linux-3.10-ea8f5fb8a71fddaf5f3a17100d3247855701f732.zip |
HWPoison: add memory_failure_queue()
memory_failure() is the entry point for HWPoison memory error
recovery. It must be called in process context. But commonly
hardware memory errors are notified via MCE or NMI, so some delayed
execution mechanism must be used. In MCE handler, a work queue + ring
buffer mechanism is used.
In addition to MCE, now APEI (ACPI Platform Error Interface) GHES
(Generic Hardware Error Source) can be used to report memory errors
too. To add support to APEI GHES memory recovery, a mechanism similar
to that of MCE is implemented. memory_failure_queue() is the new
entry point that can be called in IRQ context. The next step is to
make MCE handler uses this interface too.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/mm.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 9670f71d7be..303108eed28 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1633,6 +1633,7 @@ enum mf_flags { }; extern void memory_failure(unsigned long pfn, int trapno); extern int __memory_failure(unsigned long pfn, int trapno, int flags); +extern void memory_failure_queue(unsigned long pfn, int trapno, int flags); extern int unpoison_memory(unsigned long pfn); extern int sysctl_memory_failure_early_kill; extern int sysctl_memory_failure_recovery; |