hwpoison, shmem: fix data lost issue for 5.15.y
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
- dd0f230a0a80 ("mm: hwpoison: refactor refcount check handling")
- 4966455d9100 ("mm: hwpoison: handle non-anonymous THP correctly")
- a76054266661 ("mm: shmem: don't truncate page if memory failure happens")
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
Thanks,
Naoya Horiguchi
Greg KH
maintainerQuoted 11 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?) and work correctly?
thanks,
greg k-h
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")
Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Thanks,
Naoya Horiguchi
Quoted 16 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Quoted 8 lines
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.
Signature · 1 line
Mike Kravetz
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 3 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.
Thank you for raising hand, that's really helpful.
Maybe dd0f230a0a80 ("[PATCH] hugetlbfs: don't delete error page from pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport. dd0f230a0a80 does not apply cleanly on top of 5.15.78 + the above 3 patches. So I need check more and will update my current proposal for 5.15.y.
Thanks,
Naoya Horiguchi
Quoted 36 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 1 line
Quoted 8 lines
Quoted 2 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport.
Since dd0f230a0a80 was marked for backports, Greg's automation flags it as FAILED due to conflicts in earlier releases. I am not sure if James has a plan to do backports for dd0f230a0a80. Again, this is also something I would help with due to real customer issues.
Signature · 1 line
Mike Kravetz
Quoted 5 lines
dd0f230a0a80does not apply cleanly on top of 5.15.78 + the above 3 patches. So I need check more and will update my current proposal for 5.15.y.Thanks,
Naoya Horiguchi
Quoted 37 lines · Mike Kravetz
Quoted 36 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 1 line
Quoted 6 lines
Quoted 6 lines
Quoted 2 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from
# I meant 8625147cafaa, sorry if the wrong commit ID confused you.
I tested with 8625147cafaa too, and it made hugetlb-related testcases passed.
Quoted 7 lines
Quoted 2 lines
pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport.
Since
dd0f230a0a80was marked for backports, Greg's automation flags it as FAILED due to conflicts in earlier releases. I am not sure if James has a plan to do backports fordd0f230a0a80. Again, this is also something I would help with due to real customer issues.
OK, so I do want 8625147cafaa to be merged to stable.
Another reason why I addressed 8625147cafaa here is that this patch depends on the code handling "extra_pins" (given by dd0f230a0a80) and it's simpler to handle together.
We need to slightly modify 8625147cafaa to apply to 5.15.y. So in summary, my updated suggestion for 5.15.y is like below:
- [1/4] cherry-pick dd0f230a0a80 ("mm: hwpoison: refactor refcount check handling")
- [2/4] cherry-pick 4966455d9100 ("mm: hwpoison: handle non-anonymous THP correctly")
- [3/4] cherry-pick a76054266661 ("mm: shmem: don't truncate page if memory failure happens")
- [4/4] apply the following patch (as a modified version of 8625147cafaa)
Thanks,
Naoya Horiguchi
---
From bdd88699d8ba6907e0815608482f8c0e2170982d Mon Sep 17 00:00:00 2001
From: James Houghton <[email protected]>
Date: Tue, 15 Nov 2022 15:20:51 +0900
Subject: [PATCH] hugetlbfs: don't delete error page from pagecache
commit 8625147cafaa9ba74713d682f5185eb62cb2aedb upstream.
This change is very similar to the change that was made for shmem [1], and it solves the same problem but for HugeTLBFS instead.
Currently, when poison is found in a HugeTLB page, the page is removed from the page cache. That means that attempting to map or read that hugepage in the future will result in a new hugepage being allocated instead of notifying the user that the page was poisoned. As [1] states, this is effectively memory corruption.
The fix is to leave the page in the page cache. If the user attempts to use a poisoned HugeTLB page with a syscall, the syscall will fail with EIO, the same error code that shmem uses. For attempts to map the page, the thread will get a BUS_MCEERR_AR SIGBUS.
[1]: commit a76054266661 ("mm: shmem: don't truncate page if memory failure happens")
Although there's a conflict in hugetlbfs_error_remove_page() when backporting to stable tree, the resolution is almost trivial (just removing conflicting lines in the function).
--- fs/hugetlbfs/inode.c | 13 ++++++------- mm/hugetlb.c | 4 ++++ mm/memory-failure.c | 5 ++++- 3 files changed, 14 insertions(+), 8 deletions(-)
fs/hugetlbfs/inode.c +6 -7
@@ -361,6 +361,12 @@ static ssize_t hugetlbfs_read_iter(struct kiocb *iocb, struct iov_iter *to) }else {unlock_page (page); +if (PageHWPoison (page)) { +put_page (page); + retval = -EIO ; +break ; + } +/* * We have the page, copy it to user space buffer. */
@@ -984,13 +990,6 @@ static int hugetlbfs_migrate_page(struct address_space *mapping,static int hugetlbfs_error_remove_page (struct address_space *mapping,struct page *page) { -struct inode *inode = mapping->host; -pgoff_t index = page->index; - -remove_huge_page (page); -if (unlikely (hugetlb_unreserve_pages (inode, index, index +1 ,1 ))) -hugetlb_fix_reserve_counts (inode); -return 0 ; }
mm/hugetlb.c +4 -0
@@ -5350,6 +5350,10 @@ int hugetlb_mcopy_atomic_pte(struct mm_struct *dst_mm, ptl =huge_pte_lockptr (h, dst_mm, dst_pte);spin_lock (ptl); + ret = -EIO ; +if (PageHWPoison (page)) + goto out_release_unlock; +/* * Recheck the i_size after holding PT lock to make sure not * to leave any page mapped (as page_mapped()) beyond the end
mm/memory-failure.c +4 -1
@@ -1040,6 +1040,7 @@ static int me_huge_page(struct page_state *ps, struct page *p)int res;struct page *hpage =compound_head (p);struct address_space *mapping; +bool extra_pins = false;if (!PageHuge (hpage))return MF_DELAYED ;
@@ -1047,6 +1048,8 @@ static int me_huge_page(struct page_state *ps, struct page *p) mapping =page_mapping (hpage);if (mapping) { res =truncate_error_page (hpage,page_to_pfn (p), mapping); +/* The page is kept in page cache. */ + extra_pins = true;unlock_page (hpage); }else { res =MF_FAILED ;
@@ -1064,7 +1067,7 @@ static int me_huge_page(struct page_state *ps, struct page *p) } } -if (has_extra_refcount (ps, p, false)) +if (has_extra_refcount (ps, p, extra_pins)) res =MF_FAILED ;return res;
Signature · 1 line
2.37.3.518.g79f2338b37
Quoted 49 lines · Naoya Horiguchi
Quoted 37 lines · Mike Kravetz
Quoted 36 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 1 line
Quoted 6 lines
Quoted 6 lines
Quoted 2 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from# I meant
8625147cafaa, sorry if the wrong commit ID confused you.I tested with
8625147cafaatoo, and it made hugetlb-related testcases passed.
<snip>
Quoted 7 lines
We need to slightly modify
8625147cafaato apply to 5.15.y. So in summary, my updated suggestion for 5.15.y is like below:- [1/4] cherry-pick
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
- [2/4] cherry-pick4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
- [3/4] cherry-picka76054266661("mm: shmem: don't truncate page if memory failure happens")
- [4/4] apply the following patch (as a modified version of8625147cafaa)
Hi Naoya,
Just curious, do you have automated tests for this? I wanted test backports to each stable release. I could manually test, but that would be a bit involved and was hoping you had something automated.
Signature · 1 line
Mike Kravetz
Quoted 59 lines · Mike Kravetz
Quoted 49 lines · Naoya Horiguchi
Quoted 37 lines · Mike Kravetz
Quoted 36 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 1 line
Quoted 6 lines
Quoted 6 lines
Quoted 2 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from# I meant
8625147cafaa, sorry if the wrong commit ID confused you.I tested with
8625147cafaatoo, and it made hugetlb-related testcases passed.<snip>
Quoted 7 lines
We need to slightly modify
8625147cafaato apply to 5.15.y. So in summary, my updated suggestion for 5.15.y is like below:- [1/4] cherry-pick
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
- [2/4] cherry-pick4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
- [3/4] cherry-picka76054266661("mm: shmem: don't truncate page if memory failure happens")
- [4/4] apply the following patch (as a modified version of8625147cafaa)
Quoted 5 lines
Hi Naoya,
Just curious, do you have automated tests for this? I wanted test backports to each stable release. I could manually test, but that would be a bit involved and was hoping you had something automated.
Yes, related testcases are available on https://github.com/nhoriguchi/mm_regression.
You can run them by the following steps:
$ git clone https://github.com/nhoriguchi/mm_regression. $ cd mm_regression
# Check that your testing server meets the prerequisite # https://github.com/nhoriguchi/mm_regression#prerequisite
$ make ... # Compiler might show errors but that's OK because all # files are not needed to run relevant testcases.
$ bash run.sh prepare debug
# List the testcases in work/debug/recipelist like below:
$ cat work/debug/recipelist mm/hwpoison/shmem_link/link-hard.auto3 mm/hwpoison/shmem_link/link-sym.auto3 mm/hwpoison/shmem_rw/thp-always.auto3 mm/hwpoison/shmem_rw/thp-never.auto3
$ bash run.sh project run
Thanks,
Naoya Horiguchi
Quoted 39 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 3 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.
Quoted 7 lines
Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport.dd0f230a0a80does not apply cleanly on top of 5.15.78 + the above 3 patches. So I need check more and will update my current proposal for 5.15.y.
When working with 5.10.y, I noticed that commit eac96c3efdb5 ("mm: filemap:
check if THP has hwpoisoned subpage for PMD page fault") as well as the prereq commit c7cb42e94473 ("mm: hwpoison: remove the unnecessary THP check") were not backported to 5.10.y. Without those patches, THP testing will fail.
Naoya and Yang Shi, does that sound right?
I have backports for those as well but want to check if you think anything else is needed.
Signature · 1 line
Mike Kravetz
Quoted 49 lines · Mike Kravetz
Quoted 39 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 3 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Quoted 7 lines
Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport.dd0f230a0a80does not apply cleanly on top of 5.15.78 + the above 3 patches. So I need check more and will update my current proposal for 5.15.y.
Quoted 7 lines
When working with 5.10.y, I noticed that commit
eac96c3efdb5("mm: filemap:
check if THP has hwpoisoned subpage for PMD page fault") as well as the prereq commitc7cb42e94473("mm: hwpoison: remove the unnecessary THP check") were not backported to 5.10.y. Without those patches, THP testing will fail.Naoya and Yang Shi, does that sound right?
Yes, since the hwpoisoned THP will be kept in page cache so the page fault may happen on it again, without that commit the page fault won't return -EHWPOISON if I remember correctly.
Quoted 3 lines
I have backports for those as well but want to check if you think anything else is needed.
Thanks for backporting them. No more fix is needed AFAICT.
Quoted 2 lines
--
Mike Kravetz
Quoted 63 lines · Yang Shi
Quoted 49 lines · Mike Kravetz
Quoted 39 lines · HORIGUCHI NAOYA(堀口 直也)
Quoted 21 lines · Mike Kravetz
Quoted 20 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Hi Naoya,
Just curious if you have plans to do backports for earlier releases?
I didn't have a clear plan. I just thought that we should backport to earlier kernels if someone want and the patches are applicable easily enough and well-tested.
Quoted 3 lines
If not, I can start that effort. We have seen data loss/corruption because of
this on a 4.14 based release. So, I would go at least that far back.Quoted 7 lines
Thank you for raising hand, that's really helpful.
Maybe
dd0f230a0a80("[PATCH] hugetlbfs: don't delete error page from pagecbache") should be considered to backport together, because it's the similar issue and reported (a while ago) to fail to backport.dd0f230a0a80does not apply cleanly on top of 5.15.78 + the above 3 patches. So I need check more and will update my current proposal for 5.15.y.Quoted 7 lines
When working with 5.10.y, I noticed that commit
eac96c3efdb5("mm: filemap:
check if THP has hwpoisoned subpage for PMD page fault") as well as the prereq commitc7cb42e94473("mm: hwpoison: remove the unnecessary THP check") were not backported to 5.10.y. Without those patches, THP testing will fail.Naoya and Yang Shi, does that sound right?
Yes, since the hwpoisoned THP will be kept in page cache so the page fault may happen on it again, without that commit the page fault won't return
-EHWPOISONif I remember correctly.Quoted 1 line
Quoted 4 lines
Quoted 2 lines
I have backports for those as well but want to check if you think anything else is needed.
Thanks for backporting them. No more fix is needed AFAICT.
I agree with Yang. There seems no other commit related to current pagecache problem but not backported yet.
Thanks,
Naoya Horiguchi
Greg KH
maintainerQuoted 16 lines · Naoya Horiguchi
Quoted 9 lines · Greg KH
Quoted 8 lines · Naoya Horiguchi
Hi,
I'd like to request the follow commits to be backported to 5.15.y.
-
dd0f230a0a80("mm: hwpoison: refactor refcount check handling")
-4966455d9100("mm: hwpoison: handle non-anonymous THP correctly")
-a76054266661("mm: shmem: don't truncate page if memory failure happens")Quoted 5 lines
Quoted 3 lines
These patches fixed a data lost issue by preventing shmem pagecache from being removed by memory error. These were not tagged for stable originally, but that's revisited recently.
And have you tested that these all apply properly (and in which order?)
Quoted 8 lines
Yes, I've checked that these cleanly apply (without any change) on 5.15.78 in the above order (i.e. dd0f23 is first, 496645 comes next, then a76054).
Quoted 1 line
and work correctly?
Yes, I ran related testcases in my test suite, and their status changed FAIL to PASS with these patches.
Great, all now queued up, thanks.
greg k-h