On 10/11/2017 10:13 AM, Michal Hocko wrote: > On Wed 11-10-17 10:04:39, Vlastimil Babka wrote: >> On 10/11/2017 08:51 AM, Michal Hocko wrote: > [...] >>> This is really strange! As you write in other email the page is >>> reserved. That means that some of the earlier checks >>> if (zone_idx(zone) == ZONE_MOVABLE) >>> return false; >>> mt = get_pageblock_migratetype(page); >>> if (mt == MIGRATE_MOVABLE || is_migrate_cma(mt)) >> >> The MIGRATE_MOVABLE check is indeed bogus, because that doesn't >> guarantee there are no unmovable pages in the block (CMA block OTOH >> should be a guarantee). > > OK, thanks for confirmation. I will remove the MIGRATE_MOVABLE check > here. Do you think it is worth removing CMA check as well? This is > merely an optimization AFAIU because we do not have to check the full > pageblockworth of pfns. Actually, we should remove the CMA part as well. It's true that MIGRATE_CMA does guarantee that the *buddy allocator* won't allocate non-MOVABLE pages from the pageblock. But if the memory got allocated as an actual CMA allocation (alloc_contig...) it will almost certainly not be movable. > Anyway, let's way for Michael to confirm it really helps. If yes I will > post a full patch and ask Andrew to add it as a prerequisite for this > patch when sending to Linus to prevent the regression. > -- 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>