Re: [PATCH] x86_64: remove never used nodenumer in pda

Andi Kleen
2008-02-19T18:09:05Z

On Tue, Feb 19, 2008 at 07:48:54AM -0800, Mike Travis wrote:
> Andi Kleen wrote:
> > Yinghai Lu <Yinghai.Lu@Sun.COM> writes:
> >
> >> we don't need copy too. already have x86_cpu_to_node_map
> >
> > That's a regression (probably from Mike's patches?). Until recently it was
> > used.
>
> Yes, I had removed it because I couldn't find any references to it.

Hmm, maybe it regressed earlier. Sorry if I blamed you incorrectly.
Anyways at some point this definitely worked. I remember writing
the code ;-)

> And reading one's own percpu variables should be as efficient as
> reading one's own pda.

Sure, but the point is that getting the current node is a common
operation, so it should be a single reference and not go through a
lookup table.

How it is actually implemented -- through PDA or through you new
equivalent per cpu variables -- does not really matter as long
as the resulting code is only a single instruction. Using
the lookup array from the cpu number is wrong.

My patch just fixed it back to use the PDA in the old style for now,
but if all your per cpu stuff is merged (I admit I haven't tracked
if it is or not) replacing that with a per cpu variable would work too
if it then generates the same code as with PDA.

-Andi