Re: [PATCH 07/20] Simplify the check on whether cpusets are a factor or not

Peter Zijlstra
2009-02-23T09:08:48Z

On Mon, 2009-02-23 at 09:14 +0200, Pekka J Enberg wrote:
> On Sun, 22 Feb 2009, Mel Gorman wrote:
> > The check whether cpuset contraints need to be checked or not is complex
> > and often repeated. This patch makes the check in advance to the comparison
> > is simplier to compute.
> >
> > Signed-off-by: Mel Gorman <mel@csn.ul.ie>
>
> You can do that in a cleaner way by defining ALLOC_CPUSET to be zero when
> CONFIG_CPUSETS is disabled. Something like following untested patch:
>
> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 5675b30..18b687d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1135,7 +1135,12 @@ failed:
> #define ALLOC_WMARK_HIGH 0x08 /* use pages_high watermark */
> #define ALLOC_HARDER 0x10 /* try to alloc harder */
> #define ALLOC_HIGH 0x20 /* __GFP_HIGH set */
> +
> +#ifdef CONFIG_CPUSETS
> #define ALLOC_CPUSET 0x40 /* check for correct cpuset */
> +#else
> +#define ALLOC_CPUSET 0x00
> +#endif
>

Mel's patch however even avoids the code when cpusets are configured but
not actively used (the most common case for distro kernels).