Lines Matching refs:pfn

213 static int kill_proc(struct to_kill *tk, unsigned long pfn, int flags)  in kill_proc()  argument
220 pfn, t->comm, t->pid); in kill_proc()
361 unsigned long pfn, int flags) in kill_procs() argument
374 pfn, tk->tsk->comm, tk->tsk->pid); in kill_procs()
384 else if (kill_proc(tk, pfn, flags) < 0) in kill_procs()
386 pfn, tk->tsk->comm, tk->tsk->pid); in kill_procs()
591 static int truncate_error_page(struct page *p, unsigned long pfn, in truncate_error_page() argument
601 pfn, err); in truncate_error_page()
605 pfn); in truncate_error_page()
618 pfn); in truncate_error_page()
629 static int me_kernel(struct page *p, unsigned long pfn) in me_kernel() argument
637 static int me_unknown(struct page *p, unsigned long pfn) in me_unknown() argument
639 pr_err("Memory failure: %#lx: Unknown page state\n", pfn); in me_unknown()
646 static int me_pagecache_clean(struct page *p, unsigned long pfn) in me_pagecache_clean() argument
679 return truncate_error_page(p, pfn, mapping); in me_pagecache_clean()
687 static int me_pagecache_dirty(struct page *p, unsigned long pfn) in me_pagecache_dirty() argument
731 return me_pagecache_clean(p, pfn); in me_pagecache_dirty()
753 static int me_swapcache_dirty(struct page *p, unsigned long pfn) in me_swapcache_dirty() argument
765 static int me_swapcache_clean(struct page *p, unsigned long pfn) in me_swapcache_clean() argument
781 static int me_huge_page(struct page *p, unsigned long pfn) in me_huge_page() argument
792 res = truncate_error_page(hpage, pfn, mapping); in me_huge_page()
837 int (*action)(struct page *p, unsigned long pfn);
886 static void action_result(unsigned long pfn, enum mf_action_page_type type, in action_result() argument
889 trace_memory_failure_event(pfn, type, result); in action_result()
892 pfn, action_page_types[type], action_name[result]); in action_result()
896 unsigned long pfn) in page_action() argument
901 result = ps->action(p, pfn); in page_action()
908 pfn, action_page_types[ps->type], count); in page_action()
911 action_result(pfn, ps->type, result); in page_action()
963 static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, in hwpoison_user_mappings() argument
991 pr_err("Memory failure: %#lx: can't handle KSM pages.\n", pfn); in hwpoison_user_mappings()
997 pfn); in hwpoison_user_mappings()
1016 pfn); in hwpoison_user_mappings()
1034 pfn, page_mapcount(hpage)); in hwpoison_user_mappings()
1054 kill_procs(&tokill, forcekill, !unmap_success, pfn, flags); in hwpoison_user_mappings()
1059 static int identify_page_state(unsigned long pfn, struct page *p, in identify_page_state() argument
1079 return page_action(ps, p, pfn); in identify_page_state()
1082 static int memory_failure_hugetlb(unsigned long pfn, int flags) in memory_failure_hugetlb() argument
1084 struct page *p = pfn_to_page(pfn); in memory_failure_hugetlb()
1091 pfn); in memory_failure_hugetlb()
1112 action_result(pfn, MF_MSG_FREE_HUGE, MF_DELAYED); in memory_failure_hugetlb()
1120 pr_err("Memory failure: %#lx: just unpoisoned\n", pfn); in memory_failure_hugetlb()
1137 action_result(pfn, MF_MSG_NON_PMD_HUGE, MF_IGNORED); in memory_failure_hugetlb()
1142 if (!hwpoison_user_mappings(p, pfn, flags, &head)) { in memory_failure_hugetlb()
1143 action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED); in memory_failure_hugetlb()
1148 res = identify_page_state(pfn, p, page_flags); in memory_failure_hugetlb()
1154 static int memory_failure_dev_pagemap(unsigned long pfn, int flags, in memory_failure_dev_pagemap() argument
1157 struct page *page = pfn_to_page(pfn); in memory_failure_dev_pagemap()
1220 kill_procs(&tokill, flags & MF_MUST_KILL, !unmap_success, pfn, flags); in memory_failure_dev_pagemap()
1227 action_result(pfn, MF_MSG_DAX, rc ? MF_FAILED : MF_RECOVERED); in memory_failure_dev_pagemap()
1248 int memory_failure(unsigned long pfn, int flags) in memory_failure() argument
1258 panic("Memory failure on page %lx", pfn); in memory_failure()
1260 if (!pfn_valid(pfn)) { in memory_failure()
1262 pfn); in memory_failure()
1266 pgmap = get_dev_pagemap(pfn, NULL); in memory_failure()
1268 return memory_failure_dev_pagemap(pfn, flags, pgmap); in memory_failure()
1270 p = pfn_to_page(pfn); in memory_failure()
1272 return memory_failure_hugetlb(pfn, flags); in memory_failure()
1275 pfn); in memory_failure()
1295 action_result(pfn, MF_MSG_BUDDY, MF_DELAYED); in memory_failure()
1298 action_result(pfn, MF_MSG_KERNEL_HIGH_ORDER, MF_IGNORED); in memory_failure()
1309 pfn); in memory_failure()
1312 pfn); in memory_failure()
1335 action_result(pfn, MF_MSG_BUDDY, MF_DELAYED); in memory_failure()
1337 action_result(pfn, MF_MSG_BUDDY_2ND, MF_DELAYED); in memory_failure()
1348 action_result(pfn, MF_MSG_DIFFERENT_COMPOUND, MF_IGNORED); in memory_failure()
1369 pr_err("Memory failure: %#lx: just unpoisoned\n", pfn); in memory_failure()
1399 if (!hwpoison_user_mappings(p, pfn, flags, &hpage)) { in memory_failure()
1400 action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED); in memory_failure()
1409 action_result(pfn, MF_MSG_TRUNCATED_LRU, MF_IGNORED); in memory_failure()
1415 res = identify_page_state(pfn, p, page_flags); in memory_failure()
1426 unsigned long pfn; member
1455 void memory_failure_queue(unsigned long pfn, int flags) in memory_failure_queue() argument
1460 .pfn = pfn, in memory_failure_queue()
1470 pfn); in memory_failure_queue()
1491 soft_offline_page(pfn_to_page(entry.pfn), entry.flags); in memory_failure_work_func()
1493 memory_failure(entry.pfn, entry.flags); in memory_failure_work_func()
1513 #define unpoison_pr_info(fmt, pfn, rs) \ argument
1516 pr_info(fmt, pfn); \
1531 int unpoison_memory(unsigned long pfn) in unpoison_memory() argument
1539 if (!pfn_valid(pfn)) in unpoison_memory()
1542 p = pfn_to_page(pfn); in unpoison_memory()
1547 pfn, &unpoison_rs); in unpoison_memory()
1553 pfn, &unpoison_rs); in unpoison_memory()
1559 pfn, &unpoison_rs); in unpoison_memory()
1565 pfn, &unpoison_rs); in unpoison_memory()
1576 pfn, &unpoison_rs); in unpoison_memory()
1584 pfn, &unpoison_rs); in unpoison_memory()
1597 pfn, &unpoison_rs); in unpoison_memory()
1604 if (freeit && !(pfn == my_zero_pfn(0) && page_count(p) == 1)) in unpoison_memory()
1624 static int __get_any_page(struct page *p, unsigned long pfn, int flags) in __get_any_page() argument
1637 pr_info("%s: %#lx free huge page\n", __func__, pfn); in __get_any_page()
1640 pr_info("%s: %#lx free buddy page\n", __func__, pfn); in __get_any_page()
1644 __func__, pfn, p->flags); in __get_any_page()
1654 static int get_any_page(struct page *page, unsigned long pfn, int flags) in get_any_page() argument
1656 int ret = __get_any_page(page, pfn, flags); in get_any_page()
1669 ret = __get_any_page(page, pfn, 0); in get_any_page()
1674 pfn, page->flags, &page->flags); in get_any_page()
1684 unsigned long pfn = page_to_pfn(page); in soft_offline_huge_page() local
1696 pr_info("soft offline: %#lx hugepage already poisoned\n", pfn); in soft_offline_huge_page()
1708 pr_info("soft offline: %#lx hugepage failed to isolate\n", pfn); in soft_offline_huge_page()
1716 pfn, ret, page->flags, &page->flags); in soft_offline_huge_page()
1741 unsigned long pfn = page_to_pfn(page); in __soft_offline_page() local
1754 pr_info("soft offline: %#lx page already poisoned\n", pfn); in __soft_offline_page()
1769 pr_info("soft_offline: %#lx: invalidated\n", pfn); in __soft_offline_page()
1807 pfn, ret, page->flags, &page->flags); in __soft_offline_page()
1813 pfn, ret, page_count(page), page->flags, &page->flags); in __soft_offline_page()
1898 unsigned long pfn = page_to_pfn(page); in soft_offline_page() local
1902 pfn); in soft_offline_page()
1909 pr_info("soft offline: %#lx page already poisoned\n", pfn); in soft_offline_page()
1916 ret = get_any_page(page, pfn, flags); in soft_offline_page()