Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb46e735 authored by Andi Kleen's avatar Andi Kleen
Browse files

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
Loading
Loading
Loading
Loading
+12 −12
Original line number Original line Diff line number Diff line
@@ -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)