On 03/03/2015 10:52 PM, Eric B Munson wrote: > On Tue, 03 Mar 2015, Eric B Munson wrote: > >> On Tue, 03 Mar 2015, Vlastimil Babka wrote: >> >> > On 03/03/2015 07:45 PM, Eric B Munson wrote: >> > > On Tue, 03 Mar 2015, Vlastimil Babka wrote: >> > > >> > > Agreed. But as has been discussed in the threads around the VM_PINNED >> > > work, there are people that are relying on the fact that VM_LOCKED >> > > promises no minor faults. Which is why the behavoir has remained. >> > >> > At least in the VM_PINNED thread after last lsf/mm, I don't see this mentioned. >> > I found no references to mlocking in compaction.c, and in migrate.c there's just >> > mlock_migrate_page() with comment: >> > >> > /* >> > * mlock_migrate_page - called only from migrate_page_copy() to >> > * migrate the Mlocked page flag; update statistics. >> > */ >> > >> > It also passes TTU_IGNORE_MLOCK to try_to_unmap(). So what am I missing? Where >> > is this restriction? >> > >> >> I spent quite some time looking for it as well, it is in vmscan.c >> >> int __isolate_lru_page(struct page *page, isolate_mode_t mode) >> { >> ... >> /* Compaction should not handle unevictable pages but CMA can do so */ >> if (PageUnevictable(page) && !(mode & ISOLATE_UNEVICTABLE)) >> return ret; >> ... >> >> > > And that demonstrates that I haven't spent enough time with this code, > that isn't the restriction because when this is called from compaction.c > the mode is set to ISOLATE_UNEVICTABLE. So back to reading the code. No, you were correct and thanks for the hint. It's only ISOLATE_UNEVICTABLE from isolate_migratepages_range(), which is CMA, not regular compaction. But I wonder, can we change this even after VM_PINNED is introduced, if existing code depends on "no minor faults in mlocked areas", whatever the docs say? On the other hand, compaction is not the only source of migrations. I wonder what the NUMA balancing does (not) about mlocked areas... -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>