Commit fb46e735 authored by Andi Kleen's avatar Andi Kleen

HWPOISON: Convert pr_debugs to pr_info

Convert a lot of pr_debugs in memory-failure.c that are generally useful
to pr_info. It's reasonable to print at least one message why
offlining succeeded or failed by default.
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
parent 1c80b990
...@@ -314,7 +314,7 @@ static void add_to_kill(struct task_struct *tsk, struct page *p, ...@@ -314,7 +314,7 @@ static void add_to_kill(struct task_struct *tsk, struct page *p,
* a SIGKILL because the error is not contained anymore. * a SIGKILL because the error is not contained anymore.
*/ */
if (tk->addr == -EFAULT) { if (tk->addr == -EFAULT) {
pr_debug("MCE: Unable to find user space address %lx in %s\n", pr_info("MCE: Unable to find user space address %lx in %s\n",
page_to_pfn(p), tsk->comm); page_to_pfn(p), tsk->comm);
tk->addr_valid = 0; tk->addr_valid = 0;
} }
...@@ -582,7 +582,7 @@ static int me_pagecache_clean(struct page *p, unsigned long pfn) ...@@ -582,7 +582,7 @@ static int me_pagecache_clean(struct page *p, unsigned long pfn)
pfn, err); pfn, err);
} else if (page_has_private(p) && } else if (page_has_private(p) &&
!try_to_release_page(p, GFP_NOIO)) { !try_to_release_page(p, GFP_NOIO)) {
pr_debug("MCE %#lx: failed to release buffers\n", pfn); pr_info("MCE %#lx: failed to release buffers\n", pfn);
} else { } else {
ret = RECOVERED; ret = RECOVERED;
} }
...@@ -1152,7 +1152,7 @@ int unpoison_memory(unsigned long pfn) ...@@ -1152,7 +1152,7 @@ int unpoison_memory(unsigned long pfn)
page = compound_head(p); page = compound_head(p);
if (!PageHWPoison(p)) { if (!PageHWPoison(p)) {
pr_debug("MCE: Page was already unpoisoned %#lx\n", pfn); pr_info("MCE: Page was already unpoisoned %#lx\n", pfn);
return 0; return 0;
} }
...@@ -1161,7 +1161,7 @@ int unpoison_memory(unsigned long pfn) ...@@ -1161,7 +1161,7 @@ int unpoison_memory(unsigned long pfn)
if (!get_page_unless_zero(page)) { if (!get_page_unless_zero(page)) {
if (TestClearPageHWPoison(p)) if (TestClearPageHWPoison(p))
atomic_long_sub(nr_pages, &mce_bad_pages); atomic_long_sub(nr_pages, &mce_bad_pages);
pr_debug("MCE: Software-unpoisoned free page %#lx\n", pfn); pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
return 0; return 0;
} }
...@@ -1173,7 +1173,7 @@ int unpoison_memory(unsigned long pfn) ...@@ -1173,7 +1173,7 @@ int unpoison_memory(unsigned long pfn)
* the free buddy page pool. * the free buddy page pool.
*/ */
if (TestClearPageHWPoison(page)) { if (TestClearPageHWPoison(page)) {
pr_debug("MCE: Software-unpoisoned page %#lx\n", pfn); pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
atomic_long_sub(nr_pages, &mce_bad_pages); atomic_long_sub(nr_pages, &mce_bad_pages);
freeit = 1; freeit = 1;
} }
...@@ -1222,12 +1222,12 @@ static int get_any_page(struct page *p, unsigned long pfn, int flags) ...@@ -1222,12 +1222,12 @@ static int get_any_page(struct page *p, unsigned long pfn, int flags)
set_migratetype_isolate(p); set_migratetype_isolate(p);
if (!get_page_unless_zero(compound_head(p))) { if (!get_page_unless_zero(compound_head(p))) {
if (is_free_buddy_page(p)) { if (is_free_buddy_page(p)) {
pr_debug("get_any_page: %#lx free buddy page\n", pfn); pr_info("get_any_page: %#lx free buddy page\n", pfn);
/* Set hwpoison bit while page is still isolated */ /* Set hwpoison bit while page is still isolated */
SetPageHWPoison(p); SetPageHWPoison(p);
ret = 0; ret = 0;
} else { } else {
pr_debug("get_any_page: %#lx: unknown zero refcount page type %lx\n", pr_info("get_any_page: %#lx: unknown zero refcount page type %lx\n",
pfn, p->flags); pfn, p->flags);
ret = -EIO; ret = -EIO;
} }
...@@ -1293,7 +1293,7 @@ int soft_offline_page(struct page *page, int flags) ...@@ -1293,7 +1293,7 @@ int soft_offline_page(struct page *page, int flags)
goto done; goto done;
} }
if (!PageLRU(page)) { if (!PageLRU(page)) {
pr_debug("soft_offline: %#lx: unknown non LRU page type %lx\n", pr_info("soft_offline: %#lx: unknown non LRU page type %lx\n",
pfn, page->flags); pfn, page->flags);
return -EIO; return -EIO;
} }
...@@ -1307,7 +1307,7 @@ int soft_offline_page(struct page *page, int flags) ...@@ -1307,7 +1307,7 @@ int soft_offline_page(struct page *page, int flags)
if (PageHWPoison(page)) { if (PageHWPoison(page)) {
unlock_page(page); unlock_page(page);
put_page(page); put_page(page);
pr_debug("soft offline: %#lx page already poisoned\n", pfn); pr_info("soft offline: %#lx page already poisoned\n", pfn);
return -EBUSY; return -EBUSY;
} }
...@@ -1328,7 +1328,7 @@ int soft_offline_page(struct page *page, int flags) ...@@ -1328,7 +1328,7 @@ int soft_offline_page(struct page *page, int flags)
put_page(page); put_page(page);
if (ret == 1) { if (ret == 1) {
ret = 0; ret = 0;
pr_debug("soft_offline: %#lx: invalidated\n", pfn); pr_info("soft_offline: %#lx: invalidated\n", pfn);
goto done; goto done;
} }
...@@ -1344,13 +1344,13 @@ int soft_offline_page(struct page *page, int flags) ...@@ -1344,13 +1344,13 @@ int soft_offline_page(struct page *page, int flags)
list_add(&page->lru, &pagelist); list_add(&page->lru, &pagelist);
ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0); ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0);
if (ret) { if (ret) {
pr_debug("soft offline: %#lx: migration failed %d, type %lx\n", pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
pfn, ret, page->flags); pfn, ret, page->flags);
if (ret > 0) if (ret > 0)
ret = -EIO; ret = -EIO;
} }
} else { } else {
pr_debug("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n", pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
pfn, ret, page_count(page), page->flags); pfn, ret, page_count(page), page->flags);
} }
if (ret) if (ret)
......
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