Re: [RFC PATCH] mm, compaction: allow compaction for GFP_NOFS requests

From: Vlastimil Babka
Date: Mon Oct 10 2016 - 02:44:53 EST

On 10/07/2016 11:21 AM, Michal Hocko wrote:
On Fri 07-10-16 10:15:07, Vlastimil Babka wrote:
On 10/07/2016 08:50 AM, Michal Hocko wrote:
On Fri 07-10-16 07:27:37, Vlastimil Babka wrote:
But make sure you don't break kcompactd and manual compaction from /proc, as
they don't currently set cc->gfp_mask. Looks like until now it was only used
to determine direct compactor's migratetype which is irrelevant in those

OK, I see. This is really subtle. One way to go would be to provide a
fake gfp_mask for them. How does the following look to you?

Looks OK. I'll have to think about the kcompactd case, as gfp mask implying
unmovable migratetype might restrict it without good reason. But that would
be separate patch anyway, yours doesn't change that (empty gfp_mask also
means unmovable migratetype) and that's good.

OK, I see. A follow up patch would be really trivial AFAICS. Just add
__GFP_MOVABLE to the mask. But I am not familiar with all these details
enough to propose a patch with full description.

Hm, actually the migratetype only matters for async compaction, and kcompactd uses sync_light, so __GFP_MOVABLE will have no effect right now.