On Sun, Nov 14, 2010 at 09:42:06PM +0100, Andrea Arcangeli wrote: > btrfs misses this: > > + .migratepage = btree_migratepage, > > It's a bug that can trigger upstream too (not only with THP) if there > are hugepage allocations (like while incrasing nr_hugepages). Chris > already fixed it with an experimental patch. If the lack of an obscure method causes data corruption something is seriously wrong with THP. At least from the 10.000 foot view I can't quite figure what the exact issue is, though. fallback_migrate_page seems to do the right thing to me for that case. Btw, there's also another issue with the page migration code when used for filesystem pages. If directly calls into ->writepage instead of using the flusher threads. On most filesystems this will "only" cause nasty I/O patterns, but on ext4 for example it will be more nasty as ext3 doesn't do conversions from delayed allocations to real ones. So unless you're doing a lot of overwrites it will be hard to make any progress in writeout(). Btw, what codepath does THP call migrate_pages from? If you don't use an explicit thread writeout will be a no-op on btrfs and XFS, too. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>