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:
- 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.
- 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@infradead.org 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.