> > And why the MIGRATE_MOVABLE test is still necessary given the> > ZONE_MOVABLE check?> > I would assume that the MIGRATE_MOVABLE test is not necessary (given that> the whole zone is set as movable) but this test is used also in the> offlining path (in set_migratetype_isolate) and the primary reason for> this patch is to sync those two checks.

Merge the two checks into an inline function?

> I am not familiar with all the possible cases for migrate flags so the> test reduction should be better done by someone more familiar with the> code (the zone flag test is much more easier than the whole> get_pageblock_migratetype so this could be a win in the end).

Feel free to swap the order of tests :)

> > > > - why do you think free pages are not removeable? Simply to cater for> > the set_migratetype_isolate() logic, or there are more fundamental> > reasons?> > Free pages can be from non movable zone, right? I know that having a> zone with the free page blocks in non-movable zone is extremely > improbable but what is the point of this check anyway? So yes, this is> more to be in sync than anything more fundamental.

You don't have strong reasons to remove the free pages test, so whynot keep it? We never know what the user will do. He may regrettedimmediately after onlining a node, and want to offline it.. Somehackers may want to offline some 128MB memory blocks (by chance) withthe help of drop_caches.