Lines Matching refs:pfn

209 static int kill_proc(struct to_kill *tk, unsigned long pfn, int flags)  in kill_proc()  argument
216 pfn, t->comm, t->pid); in kill_proc()
362 unsigned long pfn, int flags) in kill_procs() argument
375 pfn, tk->tsk->comm, tk->tsk->pid); in kill_procs()
386 else if (kill_proc(tk, pfn, flags) < 0) in kill_procs()
388 pfn, tk->tsk->comm, tk->tsk->pid); in kill_procs()
593 static int truncate_error_page(struct page *p, unsigned long pfn, in truncate_error_page() argument
603 pfn, err); in truncate_error_page()
607 pfn); in truncate_error_page()
620 pfn); in truncate_error_page()
631 static int me_kernel(struct page *p, unsigned long pfn) in me_kernel() argument
639 static int me_unknown(struct page *p, unsigned long pfn) in me_unknown() argument
641 pr_err("Memory failure: %#lx: Unknown page state\n", pfn); in me_unknown()
648 static int me_pagecache_clean(struct page *p, unsigned long pfn) in me_pagecache_clean() argument
681 return truncate_error_page(p, pfn, mapping); in me_pagecache_clean()
689 static int me_pagecache_dirty(struct page *p, unsigned long pfn) in me_pagecache_dirty() argument
733 return me_pagecache_clean(p, pfn); in me_pagecache_dirty()
755 static int me_swapcache_dirty(struct page *p, unsigned long pfn) in me_swapcache_dirty() argument
767 static int me_swapcache_clean(struct page *p, unsigned long pfn) in me_swapcache_clean() argument
783 static int me_huge_page(struct page *p, unsigned long pfn) in me_huge_page() argument
794 res = truncate_error_page(hpage, pfn, mapping); in me_huge_page()
839 int (*action)(struct page *p, unsigned long pfn);
888 static void action_result(unsigned long pfn, enum mf_action_page_type type, in action_result() argument
891 trace_memory_failure_event(pfn, type, result); in action_result()
894 pfn, action_page_types[type], action_name[result]); in action_result()
898 unsigned long pfn) in page_action() argument
903 result = ps->action(p, pfn); in page_action()
910 pfn, action_page_types[ps->type], count); in page_action()
913 action_result(pfn, ps->type, result); in page_action()
965 static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, in hwpoison_user_mappings() argument
993 pr_err("Memory failure: %#lx: can't handle KSM pages.\n", pfn); in hwpoison_user_mappings()
999 pfn); in hwpoison_user_mappings()
1018 pfn); in hwpoison_user_mappings()
1036 pfn, page_mapcount(hpage)); in hwpoison_user_mappings()
1056 kill_procs(&tokill, forcekill, !unmap_success, pfn, flags); in hwpoison_user_mappings()
1061 static int identify_page_state(unsigned long pfn, struct page *p, in identify_page_state() argument
1081 return page_action(ps, p, pfn); in identify_page_state()
1084 static int memory_failure_hugetlb(unsigned long pfn, int flags) in memory_failure_hugetlb() argument
1086 struct page *p = pfn_to_page(pfn); in memory_failure_hugetlb()
1093 pfn); in memory_failure_hugetlb()
1114 action_result(pfn, MF_MSG_FREE_HUGE, MF_DELAYED); in memory_failure_hugetlb()
1122 pr_err("Memory failure: %#lx: just unpoisoned\n", pfn); in memory_failure_hugetlb()
1139 action_result(pfn, MF_MSG_NON_PMD_HUGE, MF_IGNORED); in memory_failure_hugetlb()
1144 if (!hwpoison_user_mappings(p, pfn, flags, &head)) { in memory_failure_hugetlb()
1145 action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED); in memory_failure_hugetlb()
1150 res = identify_page_state(pfn, p, page_flags); in memory_failure_hugetlb()
1156 static int memory_failure_dev_pagemap(unsigned long pfn, int flags, in memory_failure_dev_pagemap() argument
1159 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 p = pfn_to_online_page(pfn); in memory_failure()
1262 if (pfn_valid(pfn)) { in memory_failure()
1263 pgmap = get_dev_pagemap(pfn, NULL); in memory_failure()
1265 return memory_failure_dev_pagemap(pfn, flags, in memory_failure()
1269 pfn); in memory_failure()
1274 return memory_failure_hugetlb(pfn, flags); in memory_failure()
1277 pfn); in memory_failure()
1297 action_result(pfn, MF_MSG_BUDDY, MF_DELAYED); in memory_failure()
1300 action_result(pfn, MF_MSG_KERNEL_HIGH_ORDER, MF_IGNORED); in memory_failure()
1311 pfn); in memory_failure()
1314 pfn); in memory_failure()
1337 action_result(pfn, MF_MSG_BUDDY, MF_DELAYED); in memory_failure()
1339 action_result(pfn, MF_MSG_BUDDY_2ND, MF_DELAYED); in memory_failure()
1350 action_result(pfn, MF_MSG_DIFFERENT_COMPOUND, MF_IGNORED); in memory_failure()
1371 pr_err("Memory failure: %#lx: just unpoisoned\n", pfn); in memory_failure()
1401 if (!hwpoison_user_mappings(p, pfn, flags, &hpage)) { in memory_failure()
1402 action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED); in memory_failure()
1411 action_result(pfn, MF_MSG_TRUNCATED_LRU, MF_IGNORED); in memory_failure()
1417 res = identify_page_state(pfn, p, page_flags); in memory_failure()
1428 unsigned long pfn; member
1457 void memory_failure_queue(unsigned long pfn, int flags) in memory_failure_queue() argument
1462 .pfn = pfn, in memory_failure_queue()
1472 pfn); in memory_failure_queue()
1493 soft_offline_page(pfn_to_page(entry.pfn), entry.flags); in memory_failure_work_func()
1495 memory_failure(entry.pfn, entry.flags); in memory_failure_work_func()
1515 #define unpoison_pr_info(fmt, pfn, rs) \ argument
1518 pr_info(fmt, pfn); \
1533 int unpoison_memory(unsigned long pfn) in unpoison_memory() argument
1541 if (!pfn_valid(pfn)) in unpoison_memory()
1544 p = pfn_to_page(pfn); in unpoison_memory()
1549 pfn, &unpoison_rs); in unpoison_memory()
1555 pfn, &unpoison_rs); in unpoison_memory()
1561 pfn, &unpoison_rs); in unpoison_memory()
1567 pfn, &unpoison_rs); in unpoison_memory()
1578 pfn, &unpoison_rs); in unpoison_memory()
1586 pfn, &unpoison_rs); in unpoison_memory()
1599 pfn, &unpoison_rs); in unpoison_memory()
1606 if (freeit && !(pfn == my_zero_pfn(0) && page_count(p) == 1)) in unpoison_memory()
1626 static int __get_any_page(struct page *p, unsigned long pfn, int flags) in __get_any_page() argument
1639 pr_info("%s: %#lx free huge page\n", __func__, pfn); in __get_any_page()
1642 pr_info("%s: %#lx free buddy page\n", __func__, pfn); in __get_any_page()
1646 __func__, pfn, p->flags); in __get_any_page()
1656 static int get_any_page(struct page *page, unsigned long pfn, int flags) in get_any_page() argument
1658 int ret = __get_any_page(page, pfn, flags); in get_any_page()
1671 ret = __get_any_page(page, pfn, 0); in get_any_page()
1676 pfn, page->flags, &page->flags); in get_any_page()
1686 unsigned long pfn = page_to_pfn(page); in soft_offline_huge_page() local
1698 pr_info("soft offline: %#lx hugepage already poisoned\n", pfn); in soft_offline_huge_page()
1710 pr_info("soft offline: %#lx hugepage failed to isolate\n", pfn); in soft_offline_huge_page()
1718 pfn, ret, page->flags, &page->flags); in soft_offline_huge_page()
1745 unsigned long pfn = page_to_pfn(page); in __soft_offline_page() local
1758 pr_info("soft offline: %#lx page already poisoned\n", pfn); in __soft_offline_page()
1773 pr_info("soft_offline: %#lx: invalidated\n", pfn); in __soft_offline_page()
1811 pfn, ret, page->flags, &page->flags); in __soft_offline_page()
1817 pfn, ret, page_count(page), page->flags, &page->flags); in __soft_offline_page()
1897 unsigned long pfn = page_to_pfn(page); in soft_offline_page() local
1901 pfn); in soft_offline_page()
1908 pr_info("soft offline: %#lx page already poisoned\n", pfn); in soft_offline_page()
1915 ret = get_any_page(page, pfn, flags); in soft_offline_page()