|
|
Subscribe / Log in / New account

mm, hwpoison: enable 1GB hugepage support (v2)

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(-)


Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds