Thanks David. On 2/14/2024 12:06 AM, David Hildenbrand wrote: >>> >>> Isn't there a way to bite the bullet and backport that series to 6.1 >>> instead? >> >> My worry is that, because of merge conflicts, not sure If It can end up >> in inducing some other issues. > > I can have a look this/next week. I don't recall if there was any > particular dependency. > That would help me... >> >> Although we didn't test THP on older kernels, from the code walk, it >> seems issue persists to me on older to 6.1 kernel, unless I am missing >> something here. So back porting of this series to all those LTS kernels, >> may not be a straight forward? >> >> So, I am really not sure of what is the way forward here... > > Again, if we want to fix this properly, we should first identify the > commit that actually broke it. > > If it predates folios, we'd need different fixes for different stable > kernels most likely. > > The big question are: > > 1) Is it broken in 5.15? Did you actually try to reproduce or is this > just a guess? > We didn't run the tests with THP enabled on 5.15, __so we didn't encounter this issue__ on older to 6.1 kernels. I mentioned that issue exists is based on my understanding after code walk through. To be specific, I just looked to the migrate_pages()->..->migrate_page_move_mapping() & __split_huge_page_tail() where the ->private field of thp sub-pages is not filled with swap entry. If it could have set, I think these are the only places where it would have done, per my understanding. CMIW. > 2) How did you come up with 417013e0d18 ("mm/migrate: Add > folio_migrate_mapping()") OOPS, I mean it is Fixes: 3417013e0d18 ("mm/migrate: Add folio_migrate_mapping()"). My understanding is that it a miss in folio_migrate_mapping() where the sub-pages should've the ->private set. But this is just a reimplementation of migrate_page_move_mapping()(where also the issue exists, tmk). commit 3417013e0d183be9b42d794082eec0ec1c5b5f15 Author: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Date: Fri May 7 07:28:40 2021 -0400 mm/migrate: Add folio_migrate_mapping() Reimplement migrate_page_move_mapping() as a wrapper around folio_migrate_mapping(). Saves 193 bytes of kernel text. Thanks.