| From: |
| Naoya Horiguchi <nao.horiguchi-AT-gmail.com> |
| To: |
| linux-mm-AT-kvack.org |
| Subject: |
| [PATCH v2 0/9] mm, hwpoison: enable 1GB hugepage support (v2) |
| Date: |
| Fri, 24 Jun 2022 08:51:44 +0900 |
| Message-ID: |
| <20220623235153.2623702-1-naoya.horiguchi@linux.dev> |
| Cc: |
| Andrew Morton <akpm-AT-linux-foundation.org>, David Hildenbrand <david-AT-redhat.com>, Mike Kravetz <mike.kravetz-AT-oracle.com>, Miaohe Lin <linmiaohe-AT-huawei.com>, Liu Shixin <liushixin2-AT-huawei.com>, Yang Shi <shy828301-AT-gmail.com>, Oscar Salvador <osalvador-AT-suse.de>, Muchun Song <songmuchun-AT-bytedance.com>, Naoya Horiguchi <naoya.horiguchi-AT-nec.com>, linux-kernel-AT-vger.kernel.org |
| Archive-link: |
| Article |
Here is v2 of "enabling memory error handling on 1GB hugepage" patchset.
Major updates:
- (patch 3/9) I made pud_huge() and follow_huge_pud() aware of non-present
pud entry (based on Miaohe's comment).
- (patch 4/9 and patch 5/9) I extended the mechanism to save raw error
info to support multiple error subpages in a hugepage. Additionally,
I added a "unreliable" flag which prevents freeing hwpoison hugetlb
if any raw error info is lost.
- (patch 1/9 and 2/9) During testing some common cases for 1GB hugepage,
I found a few issues in existing code, so this series starts
with fixing them.
The remaining patches should have only minor updates since v1.
Patch dependency:
- "mm/memory-failure: disable unpoison once hw error happens"
(actually the conflict is not logical one, but adding MF_SIMULATED to
mf_flags conflicts with patch 6/9.)
v1: https://lore.kernel.org/linux-mm/20220602050631.771414-1-...
Thanks,
Naoya Horiguchi
---
Summary:
Naoya Horiguchi (9):
mm/hugetlb: remove checking hstate_is_gigantic() in return_unused_surplus_pages()
mm/hugetlb: separate path for hwpoison entry in copy_hugetlb_page_range()
mm/hugetlb: make pud_huge() and huge_pud() aware of non-present pud entry
mm, hwpoison, hugetlb: support saving mechanism of raw error pages
mm, hwpoison: make unpoison aware of raw error info in hwpoisoned hugepage
mm, hwpoison: set PG_hwpoison for busy hugetlb pages
mm, hwpoison: make __page_handle_poison returns int
mm, hwpoison: skip raw hwpoison page in freeing 1GB hugepage
mm, hwpoison: enable memory error handling on 1GB hugepage
arch/x86/mm/hugetlbpage.c | 3 +-
include/linux/hugetlb.h | 13 ++++
include/linux/mm.h | 2 +-
include/linux/swapops.h | 9 +++
include/ras/ras_event.h | 1 -
mm/hugetlb.c | 78 ++++++++++++++--------
mm/memory-failure.c | 163 +++++++++++++++++++++++++++++++++++++---------
7 files changed, 209 insertions(+), 60 deletions(-)