On 24.11.21 15:37, Vlastimil Babka wrote: > On 11/24/21 09:57, David Hildenbrand wrote: >> On 24.11.21 00:59, Jason Gunthorpe wrote: >>>> Similarly for io-uring we could be migrating pages to be pinned so that >>>> the end up consolidated close together, and prevent pathologic >>>> situations like in David's reproducer. >>> >>> It is an interesting idea to have GUP do some kind of THP preserving >>> migration. >> >> >> Unfortunately it will only be a band aid AFAIU. I can rewrite my >> reproducer fairly easily to pin the whole 2M range first, pin a second >> time only a single page, and then unpin the 2M range, resulting in the >> very same way to block THP. (I can block some THP less because I always >> need the possibility to memlock 2M first, though). > > Hm I see, then we could also condsider making it possible to migrate the > pinned pages - of course io-uring would have to be cooperative here, > similarly to anything that supports PageMovable. I might be wrong but that would then essentially be an actual mlock+mmu notifier mechanism, and no longer FOLL_LONGTERM. And the mlock could actually be done by user space and would be optional. I'd be very happy to see something like that instead ... but so far people don't even agree that it's an issue worth fixing. So ... -- Thanks, David / dhildenb