On Fri 17-06-16 09:41:38, Richard Weinberger wrote: > Andrew, > > Am 17.06.2016 um 01:11 schrieb Andrew Morton: > > On Thu, 16 Jun 2016 23:26:13 +0200 Richard Weinberger <richard@xxxxxx> wrote: > > > >> While block oriented filesystems use buffer_migrate_page() > >> as page migration function other filesystems which don't > >> implement ->migratepage() will automatically get fallback_migrate_page() > >> assigned. fallback_migrate_page() is not as generic as is should > >> be. Page migration is filesystem specific and a one-fits-all function > >> is hard to achieve. UBIFS leaned this lection the hard way. > >> It uses various page flags and fallback_migrate_page() does not > >> handle these flags as UBIFS expected. > >> > >> To make sure that no further filesystem will get confused by > >> fallback_migrate_page() disable the automatic assignment and > >> allow filesystems to use this function explicitly if it is > >> really suitable. > > > > hm, is there really much point in doing this? I assume it doesn't > > actually affect any current filesystems? > > Well, we simply don't know which filesystems are affected by similar issues. But doesn't this disable the page migration and so potentially reduce the compaction success rate for the large pile of filesystems? Without any hint about that? $ git grep "\.migratepage[[:space:]]*=" -- fs | wc -l 16 out of $ git grep "struct address_space_operations[[:space:]]*[a-zA-Z0-9_]*[[:space:]]*=" -- fs | wc -l 87 That just seems to be too conservative for something that even not might be a problem, especially when considering the fallback migration code is there for many years with only UBIFS seeing a problem. Wouldn't it be safer to contact FS developers who might have have similar issue and work with them to use a proper migration code? -- Michal Hocko SUSE Labs -- 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>