Re: [PATCH 0/4] x86_64: Optimize percpu accesses

Ingo Molnar
2008-07-26T12:38:50Z

* Mike Travis <travis@sgi.com> wrote:

> This patchset provides the following:
>
> * x86_64: Cleanup setup_percpu by fixing some minor potential
> problems as well as add some debugging aids.
>
> * x86_64: Rebase per cpu variables to zero
>
> Rebase per cpu variables to zero in preparation for the following
> patch to fold the pda into the per cpu area.
>
> * x86_64: Fold pda into per cpu area
>
> Declare the pda as a per cpu variable. This will allow the per cpu
> variables to be accessible on the x86_64 using %gs as the base of
> the percpu areas for each cpu:
>
> %gs:per_cpu_xxxx
>
> * x86_64: Reference zero-based percpu variables offset from gs
>
> Actually implement the above operation for __get_cpu_var() and
> __put_cpu_var(). Since this is now a single instruction, we
> can remove the non-preemptible versions of x86_read_percpu()
> and x86_write_percpu().
>
> Note that the following changes are NOT in this patchset as the plan now
> seems to be that the common (to x86) variables that are in the pda should
> be made individual per cpu variables, leaving only the stack canary in place.
>
> * x86_64: Replace cpu_pda ops with percpu ops
> * x86_64: Replace xxx_pda() operations with x86_xxx_percpu().
> * x86_64: Remove xxx_pda() operations
> * x86_64: Remove cpu_pda() macro
>
> Based on linux-2.6.tip/master.

i've added these patches to tip/x86/percpu-zerobased, but not yet merged
into tip/master. I've made it -git based - does this patchset have any
functional dependencies on other patches?

Ingo