On 07/16/2015 02:06 AM, Minchan Kim wrote:
On Wed, Jul 15, 2015 at 03:33:59PM +0900, Joonsoo Kim wrote:
@@ -2003,7 +2005,7 @@ int __isolate_free_page(struct page *page, unsigned int order)
zone->free_area[order].nr_free--;
rmv_page_order(page);
- set_page_owner(page, order, 0);
+ set_page_owner(page, order, __GFP_MOVABLE);
It seems the reason why __GFP_MOVABLE is okay is that __isolate_free_page
works on a free page on MIGRATE_MOVABLE|MIGRATE_CMA's pageblock. But if we
break the assumption in future, here is broken again?
I didn't study the page owner code yet and I'm catching up after
vacation, but I share your concern. But I don't think the correctness
depends on the pageblock we are isolating from. I think the assumption
is that the isolated freepage will be used as a target for migration,
and that only movable pages can be successfully migrated (but also CMA
pages, and that information can be lost?). However there are also
efforts to allow migrate e.g. driver pages that won't be marked as
movable. And I'm not sure which migratetype are balloon pages which
already have special migration code.
So what I would think (without knowing all details) that the page owner
info should be transferred during page migration with all the other
flags, and shouldn't concern __isolate_free_page() at all?
Please put the comment here to cause it.
Otherwise, Good spot!
Reviewed-by: Minchan Kim <minchan@xxxxxxxxxx>
--
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>