Re: [PATCH v2] mm/page_alloc: remove unnecessary order check in __alloc_pages_direct_compact

From: Michal Nazarewicz
Date: Wed Jun 15 2016 - 12:41:17 EST


On Wed, Jun 15 2016, Balbir Singh wrote:
> On Wed, Jun 15, 2016 at 7:34 PM, Ganesh Mahendran
> <opensource.ganesh@xxxxxxxxx> wrote:
>> In the callee try_to_compact_pages(), the (order == 0) is checked,
>> so remove check in __alloc_pages_direct_compact.
>>
>> Signed-off-by: Ganesh Mahendran <opensource.ganesh@xxxxxxxxx>
>> ---
>> v2:
>> remove the check in __alloc_pages_direct_compact - Anshuman Khandual
>> ---
>> mm/page_alloc.c | 3 ---
>> 1 file changed, 3 deletions(-)
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index b9ea618..2f5a82a 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -3173,9 +3173,6 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
>> struct page *page;
>> int contended_compaction;
>>
>> - if (!order)
>> - return NULL;
>> -
>> current->flags |= PF_MEMALLOC;
>> *compact_result = try_to_compact_pages(gfp_mask, order, alloc_flags, ac,
>> mode, &contended_compaction);
>
> What is the benefit of this. Is an if check more expensive than
> calling the function and returning from it? I don't feel strongly
> about such changes, but its good to audit the overall code for reading
> and performance.

Itâs a slow path so it probably doesnât matter much. But I also donât
see whether this improves readability of the code.

For performance, I would rather wait for gcc to compile kernel as one
translation unit which will allow it to inline try_to_compact_pages and
notice redundant order==0 check.

--
Best regards
ããã âðððð86â ãããããã
ÂIf at first you donât succeed, give up skydivingÂ