forked from luck/tmp_suning_uos_patched
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: Andi Kleen <ak@linux.intel.com>
This commit is contained in:
parent
1c80b990a3
commit
fb46e73520
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
* 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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user