Re: [PATCH] Allocate idle task for a CPU always on its local node

From: Thomas Gleixner
Date: Wed May 18 2016 - 04:30:37 EST


On Tue, 17 May 2016, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> Linux pre-allocates the task structs of the idle tasks for all possible CPUs.
> This currently means they all end up on node 0. This also implies
> that the cache line of MWAIT, which is around the flags field in the task
> struct, are all located in node 0.
>
> We see a noticeable performance improvement on Knights Landing CPUs when
> the cache lines used for MWAIT are located in the local nodes of the CPUs
> using them. I would expect this to give a (likely slight) improvement
> on other systems too.
>
> The patch implements placing the idle task in the node of
> its CPUs, by passing the right target node to copy_process()
>
> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>

Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>