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

From: Balbir Singh
Date: Wed Jun 15 2016 - 05:40:46 EST


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.

Balbir Singh