On 5 Mar 2024, at 17:32, Greg KH wrote:
On Tue, Mar 05, 2024 at 11:09:17PM +0100, David Hildenbrand wrote:
On 05.03.24 23:04, Greg KH wrote:
On Tue, Mar 05, 2024 at 11:13:13AM -0500, Zi Yan wrote:
From: Zi Yan ziy@nvidia.com
The tail pages in a THP can have swap entry information stored in their private field. When migrating to a new page, all tail pages of the new page need to update ->private to avoid future data corruption.
Signed-off-by: Zi Yan ziy@nvidia.com
mm/migrate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
What is the git commit id of this change in Linus's tree?
Unfortunately, we had to do stable-only versions, because the backport of the "accidental" fix that removes the per-subpage "private" information would be non-trivial, especially for pre-folio-converison times.
The accidental fix is
07e09c483cbef2a252f75d95670755a0607288f5
None of that is obvious at all here, we need loads of documentation in the changelog text that says all of that please.
How about?
Before 07e09c483cbe ("mm/huge_memory: work on folio->swap instead of page->private when splitting folio"), when a THP is added into swapcache, each of its subpages has its own swapcache entry and need ->private pointing to the right swapcache entry. THP added to swapcache function is added in 38d8b4e6bdc87 ("mm, THP, swap: delay splitting THP during swap out"). When THP migration was added in 616b8371539a6 ("mm: thp: enable thp migration in generic path"), it did not take care of swapcached THP's subpages, neither updated subpage's ->private nor replaced subpage pointer in the swapcache. Later, e71769ae5260 ("mm: enable thp migration for shmem thp") fixed swapcache update part. Now this patch fixes the subpage ->private update part.
-- Best Regards, Yan, Zi