linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] Improve hugetlbfs read on HWPOISON hugepages
@ 2023-05-17 16:09 Jiaqi Yan
  2023-05-17 16:09 ` [PATCH v1 1/3] mm/hwpoison: find subpage in hugetlb HWPOISON list Jiaqi Yan
                   ` (3 more replies)
  0 siblings, 4 replies; 30+ messages in thread
From: Jiaqi Yan @ 2023-05-17 16:09 UTC (permalink / raw)
  To: mike.kravetz, songmuchun, naoya.horiguchi, shy828301, linmiaohe
  Cc: akpm, linux-mm, linux-kernel, duenwen, axelrasmussen, jthoughton,
	Jiaqi Yan

Today when hardware memory is corrupted in a hugetlb hugepage,
kernel leaves the hugepage in pagecache [1]; otherwise future mmap or
read will suject to silent data corruption. This is implemented by
returning -EIO from hugetlb_read_iter immediately if the hugepage has
HWPOISON flag set.

Since memory_failure already tracks the raw HWPOISON subpages in a
hugepage, a natural improvement is possible: if userspace only asks for
healthy subpages in the pagecache, kernel can return these data.

This patchset implements this improvement. It consist of three parts.
The 1st commit exports the functionality to tell if a subpage inside a
hugetlb hugepage is a raw HWPOISON page. The 2nd commit teaches
hugetlbfs_read_iter to return as many healthy bytes as possible.
The 3rd commit properly tests this new feature.

[1] commit 8625147cafaa ("hugetlbfs: don't delete error page from pagecache")

Jiaqi Yan (3):
  mm/hwpoison: find subpage in hugetlb HWPOISON list
  hugetlbfs: improve read HWPOISON hugepage
  selftests/mm: add tests for HWPOISON hugetlbfs read

 fs/hugetlbfs/inode.c                          |  62 +++-
 include/linux/mm.h                            |  23 ++
 mm/memory-failure.c                           |  26 +-
 tools/testing/selftests/mm/.gitignore         |   1 +
 tools/testing/selftests/mm/Makefile           |   1 +
 .../selftests/mm/hugetlb-read-hwpoison.c      | 322 ++++++++++++++++++
 6 files changed, 419 insertions(+), 16 deletions(-)
 create mode 100644 tools/testing/selftests/mm/hugetlb-read-hwpoison.c

-- 
2.40.1.606.ga4b1b128d6-goog



^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2023-06-23 16:40 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-17 16:09 [PATCH v1 0/3] Improve hugetlbfs read on HWPOISON hugepages Jiaqi Yan
2023-05-17 16:09 ` [PATCH v1 1/3] mm/hwpoison: find subpage in hugetlb HWPOISON list Jiaqi Yan
2023-05-17 23:53   ` Mike Kravetz
2023-05-19 20:54     ` Jiaqi Yan
2023-05-19 22:42       ` Mike Kravetz
2023-05-22  4:50         ` HORIGUCHI NAOYA(堀口 直也)
2023-05-22 18:22           ` Jiaqi Yan
2023-05-23  2:43             ` HORIGUCHI NAOYA(堀口 直也)
2023-05-26  0:28               ` Jiaqi Yan
2023-06-10  5:48                 ` Jiaqi Yan
2023-06-12  4:19                   ` Naoya Horiguchi
2023-06-16 21:19                     ` Jiaqi Yan
2023-06-16 23:34                       ` Mike Kravetz
2023-06-17  2:18                         ` Jiaqi Yan
2023-06-17 22:59                           ` Mike Kravetz
2023-06-19  8:23                             ` Naoya Horiguchi
2023-06-20 18:05                               ` Mike Kravetz
2023-06-20 22:39                                 ` Mike Kravetz
2023-06-23  0:45                                   ` Jiaqi Yan
2023-06-23  4:19                                     ` Mike Kravetz
2023-06-23 16:40                                       ` Jiaqi Yan
2023-05-17 16:09 ` [PATCH v1 2/3] hugetlbfs: improve read HWPOISON hugepage Jiaqi Yan
2023-05-18 22:18   ` Mike Kravetz
2023-05-19 20:54     ` Jiaqi Yan
2023-05-17 16:09 ` [PATCH v1 3/3] selftests/mm: add tests for HWPOISON hugetlbfs read Jiaqi Yan
2023-05-23  7:35   ` kernel test robot
2023-05-17 23:30 ` [PATCH v1 0/3] Improve hugetlbfs read on HWPOISON hugepages Mike Kravetz
2023-05-18 16:02   ` Jiaqi Yan
2023-05-18 16:10   ` Jiaqi Yan
2023-05-18 22:24     ` Mike Kravetz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox