2024-03-07 12:04:00

by Liu Shixin

[permalink] [raw]
Subject: [PATCH stable-5.10] mm/memory-failure: fix an incorrect use of tail pages

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 <[email protected]>
---
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)
--
2.25.1



2024-03-11 01:52:10

by Liu Shixin

[permalink] [raw]
Subject: Re: [PATCH stable-5.10] mm/memory-failure: fix an incorrect use of tail pages

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/[email protected]/

[2]: https://lore.kernel.org/stable/[email protected]/

[3]: https://lore.kernel.org/stable/[email protected]/


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 <[email protected]>
> ---
> 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)


2024-03-25 12:26:38

by Liu Shixin

[permalink] [raw]
Subject: Re: [PATCH stable-5.10] mm/memory-failure: fix an incorrect use of tail pages

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 <[email protected]>
> ---
> 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)


2024-03-25 14:33:30

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH stable-5.10] mm/memory-failure: fix an incorrect use of tail pages

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 <[email protected]>
> > ---
> > 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)
>
>

2024-03-30 09:12:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH stable-5.10] mm/memory-failure: fix an incorrect use of tail pages

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