Commit 253fb02d authored by Wu Fengguang's avatar Wu Fengguang Committed by Linus Torvalds

pagemap: export KPF_HWPOISON

This flag indicates a hardware detected memory corruption on the page.
Any future access of the page data may bring down the machine.
Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7823da36
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
#define KPF_COMPOUND_TAIL 16 #define KPF_COMPOUND_TAIL 16
#define KPF_HUGE 17 #define KPF_HUGE 17
#define KPF_UNEVICTABLE 18 #define KPF_UNEVICTABLE 18
#define KPF_HWPOISON 19
#define KPF_NOPAGE 20 #define KPF_NOPAGE 20
/* [32-] kernel hacking assistances */ /* [32-] kernel hacking assistances */
...@@ -116,6 +117,7 @@ static char *page_flag_names[] = { ...@@ -116,6 +117,7 @@ static char *page_flag_names[] = {
[KPF_COMPOUND_TAIL] = "T:compound_tail", [KPF_COMPOUND_TAIL] = "T:compound_tail",
[KPF_HUGE] = "G:huge", [KPF_HUGE] = "G:huge",
[KPF_UNEVICTABLE] = "u:unevictable", [KPF_UNEVICTABLE] = "u:unevictable",
[KPF_HWPOISON] = "X:hwpoison",
[KPF_NOPAGE] = "n:nopage", [KPF_NOPAGE] = "n:nopage",
[KPF_RESERVED] = "r:reserved", [KPF_RESERVED] = "r:reserved",
......
...@@ -57,6 +57,7 @@ There are three components to pagemap: ...@@ -57,6 +57,7 @@ There are three components to pagemap:
16. COMPOUND_TAIL 16. COMPOUND_TAIL
16. HUGE 16. HUGE
18. UNEVICTABLE 18. UNEVICTABLE
19. HWPOISON
20. NOPAGE 20. NOPAGE
Short descriptions to the page flags: Short descriptions to the page flags:
...@@ -86,6 +87,9 @@ Short descriptions to the page flags: ...@@ -86,6 +87,9 @@ Short descriptions to the page flags:
17. HUGE 17. HUGE
this is an integral part of a HugeTLB page this is an integral part of a HugeTLB page
19. HWPOISON
hardware detected memory corruption on this page: don't touch the data!
20. NOPAGE 20. NOPAGE
no page frame exists at the requested address no page frame exists at the requested address
......
...@@ -94,6 +94,7 @@ static const struct file_operations proc_kpagecount_operations = { ...@@ -94,6 +94,7 @@ static const struct file_operations proc_kpagecount_operations = {
#define KPF_COMPOUND_TAIL 16 #define KPF_COMPOUND_TAIL 16
#define KPF_HUGE 17 #define KPF_HUGE 17
#define KPF_UNEVICTABLE 18 #define KPF_UNEVICTABLE 18
#define KPF_HWPOISON 19
#define KPF_NOPAGE 20 #define KPF_NOPAGE 20
#define KPF_KSM 21 #define KPF_KSM 21
...@@ -180,6 +181,10 @@ static u64 get_uflags(struct page *page) ...@@ -180,6 +181,10 @@ static u64 get_uflags(struct page *page)
u |= kpf_copy_bit(k, KPF_UNEVICTABLE, PG_unevictable); u |= kpf_copy_bit(k, KPF_UNEVICTABLE, PG_unevictable);
u |= kpf_copy_bit(k, KPF_MLOCKED, PG_mlocked); u |= kpf_copy_bit(k, KPF_MLOCKED, PG_mlocked);
#ifdef CONFIG_MEMORY_FAILURE
u |= kpf_copy_bit(k, KPF_HWPOISON, PG_hwpoison);
#endif
#ifdef CONFIG_IA64_UNCACHED_ALLOCATOR #ifdef CONFIG_IA64_UNCACHED_ALLOCATOR
u |= kpf_copy_bit(k, KPF_UNCACHED, PG_uncached); u |= kpf_copy_bit(k, KPF_UNCACHED, PG_uncached);
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment