When backport commit c79c5a0a00a9 to 5.10-stable, there is a mistake change. The head page instead of tail page should be passed to try_to_unmap(), otherwise unmap will failed as follows.
Memory failure: 0x121c10: failed to unmap page (mapcount=1) Memory failure: 0x121c10: recovery action for unmapping failed page: Ignored
Fixes: 70168fdc743b ("mm/memory-failure: check the mapcount of the precise page") Signed-off-by: Liu Shixin liushixin2@huawei.com --- mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index f320ff02cc19..dba2936292cf 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1075,7 +1075,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, unmap_success = false; } } else { - unmap_success = try_to_unmap(p, ttu); + unmap_success = try_to_unmap(hpage, ttu); } } if (!unmap_success)
Hi, Greg,
There is a bugfix for 5.10-stable, 5.4-stable, 4.19-stable. Introduced when backport
commit c79c5a0a00a9 ("mm/memory-failure: check the mapcount of the precise page").
[1]: https://lore.kernel.org/stable/20240307124841.2838010-1-liushixin2@huawei.co...
[2]: https://lore.kernel.org/stable/20240307125053.2847205-1-liushixin2@huawei.co...
[3]: https://lore.kernel.org/stable/20240307125150.2849068-1-liushixin2@huawei.co...
Thanks,
On 2024/3/7 20:48, Liu Shixin wrote:
When backport commit c79c5a0a00a9 to 5.10-stable, there is a mistake change. The head page instead of tail page should be passed to try_to_unmap(), otherwise unmap will failed as follows.
Memory failure: 0x121c10: failed to unmap page (mapcount=1) Memory failure: 0x121c10: recovery action for unmapping failed page: Ignored
Fixes: 70168fdc743b ("mm/memory-failure: check the mapcount of the precise page") Signed-off-by: Liu Shixin liushixin2@huawei.com
mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index f320ff02cc19..dba2936292cf 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1075,7 +1075,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, unmap_success = false; } } else {
unmap_success = try_to_unmap(p, ttu);
} } if (!unmap_success)unmap_success = try_to_unmap(hpage, ttu);
Hi,
After backport commit c79c5a0a00a9 ("mm/memory-failure: check the mapcount of the precise page"),
I got an error message as written on the patch. The problem can be fixed by the patch or just revert.
Now I prefer to revert because I think it is related to folio and no impact in stable, or maybe I'm wrong.
Thanks,
On 2024/3/7 20:48, Liu Shixin wrote:
When backport commit c79c5a0a00a9 to 5.10-stable, there is a mistake change. The head page instead of tail page should be passed to try_to_unmap(), otherwise unmap will failed as follows.
Memory failure: 0x121c10: failed to unmap page (mapcount=1) Memory failure: 0x121c10: recovery action for unmapping failed page: Ignored
Fixes: 70168fdc743b ("mm/memory-failure: check the mapcount of the precise page") Signed-off-by: Liu Shixin liushixin2@huawei.com
mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index f320ff02cc19..dba2936292cf 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1075,7 +1075,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, unmap_success = false; } } else {
unmap_success = try_to_unmap(p, ttu);
} } if (!unmap_success)unmap_success = try_to_unmap(hpage, ttu);
On Mon, Mar 25, 2024 at 11:36:49AM +0800, Liu Shixin wrote:
Hi,
After backport commit c79c5a0a00a9 ("mm/memory-failure: check the mapcount of the precise page"),
I got an error message as written on the patch. The problem can be fixed by the patch or just revert.
Now I prefer to revert because I think it is related to folio and no impact in stable, or maybe I'm wrong.
I checked out what is going wrong here, and Liu Shixin is correct.
Commit c79c5a0a00a9 was incorrectly backported to v5.10 and commit 70168fdc743b changees the page passed to try_to_unmap(). It now passes the tail page, and should always have passed hpage. Please apply the patch below to v5.10 (and any other trees that c79c5a0a00a9 got backported to).
Thanks,
On 2024/3/7 20:48, Liu Shixin wrote:
When backport commit c79c5a0a00a9 to 5.10-stable, there is a mistake change. The head page instead of tail page should be passed to try_to_unmap(), otherwise unmap will failed as follows.
Memory failure: 0x121c10: failed to unmap page (mapcount=1) Memory failure: 0x121c10: recovery action for unmapping failed page: Ignored
Fixes: 70168fdc743b ("mm/memory-failure: check the mapcount of the precise page") Signed-off-by: Liu Shixin liushixin2@huawei.com
mm/memory-failure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index f320ff02cc19..dba2936292cf 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1075,7 +1075,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, unmap_success = false; } } else {
unmap_success = try_to_unmap(p, ttu);
} } if (!unmap_success)unmap_success = try_to_unmap(hpage, ttu);
On Mon, Mar 25, 2024 at 03:57:06AM +0000, Matthew Wilcox wrote:
On Mon, Mar 25, 2024 at 11:36:49AM +0800, Liu Shixin wrote:
Hi,
After backport commit c79c5a0a00a9 ("mm/memory-failure: check the mapcount of the precise page"),
I got an error message as written on the patch. The problem can be fixed by the patch or just revert.
Now I prefer to revert because I think it is related to folio and no impact in stable, or maybe I'm wrong.
I checked out what is going wrong here, and Liu Shixin is correct.
Commit c79c5a0a00a9 was incorrectly backported to v5.10 and commit 70168fdc743b changees the page passed to try_to_unmap(). It now passes the tail page, and should always have passed hpage. Please apply the patch below to v5.10 (and any other trees that c79c5a0a00a9 got backported to).
All now queued up,t hanks.
greg k-h
linux-stable-mirror@lists.linaro.org