Re: [PATCH V4 3/4] mm: reduce try_to_compact_pages parameters

From: Vlastimil Babka
Date: Wed Jan 07 2015 - 04:21:38 EST


On 01/07/2015 10:18 AM, Michal Hocko wrote:
> On Wed 07-01-15 10:11:45, Vlastimil Babka wrote:
>> On 01/06/2015 03:57 PM, Michal Hocko wrote:
>> > Hmm, wait a minute
>> >
>> > On Mon 05-01-15 18:17:42, Vlastimil Babka wrote:
>> > [...]
>> >> -unsigned long try_to_compact_pages(struct zonelist *zonelist,
>> >> - int order, gfp_t gfp_mask, nodemask_t *nodemask,
>> >> - enum migrate_mode mode, int *contended,
>> >> - int alloc_flags, int classzone_idx)
>> >> +unsigned long try_to_compact_pages(gfp_t gfp_mask, unsigned int order,
>> >> + int alloc_flags, const struct alloc_context *ac,
>> >> + enum migrate_mode mode, int *contended)
>> >> {
>> >> - enum zone_type high_zoneidx = gfp_zone(gfp_mask);
>> >> int may_enter_fs = gfp_mask & __GFP_FS;
>> >> int may_perform_io = gfp_mask & __GFP_IO;
>> >> struct zoneref *z;
>> >
>> > gfp_mask might change since the high_zoneidx was set up in the call
>> > chain. I guess this shouldn't change to the gfp_zone output but it is
>> > worth double checking.
>>
>> Yeah I checked that. gfp_zone() operates just on GFP_ZONEMASK part of the flags,
>> and we don't change that.
>
> That was my understanding as well. Maybe we want
> VM_BUG_ON(gfp_zone(gfp_mask) != ac->high_zoneidx);

That sounds like an arbitrary overkill to me. I think that gfp_zone() was just
used here to save an extra parameter.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/