Re: [PATCH] mm: init gfp mask in kcompactd_do_work()

From: Xishi Qiu
Date: Mon Oct 10 2016 - 04:17:14 EST


On 2016/10/10 14:40, Vlastimil Babka wrote:

> On 10/10/2016 05:35 AM, Xishi Qiu wrote:
>> We will use gfp_mask in the following path, but it's not init.
>>
>> kcompactd_do_work
>> compact_zone
>> gfpflags_to_migratetype
>>
>> However if not init, gfp_mask is always 0, and the result of
>> gfpflags_to_migratetype(0) and gfpflags_to_migratetype(GFP_KERNEL)
>> are the same, but it's a little confusion, so init it first.
>
> Michal already did this as part of his patch, as it was needed to avoid wrongly restricting kcompactd to anonymous pages:
>
> http://lkml.kernel.org/r/<20161007065019.GA18439@xxxxxxxxxxxxxx>
>

Oh yes, I missed your discussion.

Thanks,
Xishi Qiu

>> Signed-off-by: Xishi Qiu <qiuxishi@xxxxxxxxxx>
>> ---
>> mm/compaction.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/compaction.c b/mm/compaction.c
>> index 9affb29..4b9a9d1 100644
>> --- a/mm/compaction.c
>> +++ b/mm/compaction.c
>> @@ -1895,10 +1895,10 @@ static void kcompactd_do_work(pg_data_t *pgdat)
>> struct zone *zone;
>> struct compact_control cc = {
>> .order = pgdat->kcompactd_max_order,
>> + .gfp_mask = GFP_KERNEL,
>> .classzone_idx = pgdat->kcompactd_classzone_idx,
>> .mode = MIGRATE_SYNC_LIGHT,
>> .ignore_skip_hint = true,
>> -
>> };
>> bool success = false;
>>
>>
>
>
> .
>