On Wednesday, November 23, 2016 2:34 PM Michal Hocko wrote:
> @@ -3161,6 +3161,16 @@ should_compact_retry(struct alloc_context *ac, 
> unsigned int order, int alloc_fla
>       if (!order || order > PAGE_ALLOC_COSTLY_ORDER)
>               return false;
> 
> +#ifdef CONFIG_COMPACTION
> +     /*
> +      * This is a gross workaround to compensate a lack of reliable 
> compaction
> +      * operation. We cannot simply go OOM with the current state of the 
> compaction
> +      * code because this can lead to pre mature OOM declaration.
> +      */
> +     if (order <= PAGE_ALLOC_COSTLY_ORDER)

No need to check order once more.
Plus can we retry without CONFIG_COMPACTION enabled?

> +             return true;
> +#endif
> +
>       /*
>        * There are setups with compaction disabled which would prefer to loop
>        * inside the allocator rather than hit the oom killer prematurely.
> --
> Michal Hocko
> SUSE Labs
> 

Reply via email to