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@xxxxxxxxxx> >>>> >>>> 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@xxxxxxxxxx> >>>> --- >>>> 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
Attachment:
signature.asc
Description: OpenPGP digital signature