Re: [PATCH v5 0/5] x86: Cleanup and simplify cpu-specific data

From: Kevin Winchester
Date: Thu Apr 26 2012 - 14:10:03 EST


On 28 March 2012 19:43, Kevin Winchester <kjwinchester@xxxxxxxxx> wrote:
> Various per-cpu fields are define in arch/x86/kernel/smpboot.c that are
> basically equivalent to the cpu-specific data in struct cpuinfo_x86.
> By moving these fields into the structure, a number of codepaths can be
> simplified since they no longer need to care about those fields not
> existing on !SMP builds.
>
> The size effects on allno (UP) and allyes (MAX_SMP) kernels are as
> follows:
>
> text      data      bss       dec        hex      filename
>  1369227    181536   1399180    2949943   2d0337  vmlinux.i386.allno
>  1370216    181600   1399012    2950828   2d06ac  vmlinux.i386.allno.after
>  1608231    310968    505088    2424287   24fddf  vmlinux.x86_64.allno
>  1609232    311032    504896    2425160   250148  vmlinux.x86_64.allno.after
> 97643748   6891747  34668544  139204039  84c15c7  vmlinux.i386.allyes
> 97643582   6892011  34668544  139204137  84c1629  vmlinux.i386.allyes.after
> 85869519  13567071  44511232  143947822  894782e  vmlinux.x86_64.allyes
> 85869134  13568607  44511232  143948973  8947cad  vmlinux.x86_64.allyes.after
>
>
> As can be seen, the kernels get slighly larger, but the code reduction/
> simplification should be enough to compensate for it.
>
> Changes in v5:
> - Reduced the number of files affected in the patchset by keeping helper
> functions in arch/x86/include/asm/smp.h
> - Rebased to latest tip/master
>
> Kevin Winchester (5):
>  x86: Move per cpu cpu_llc_shared_map to a field in struct cpuinfo_x86
>  x86: Move per cpu cpu_llc_id to a field in struct cpuinfo_x86
>  x86: Move per cpu cpu_sibling_map to a field in struct cpuinfo_x86
>  x86: Move per cpu cpu_core_map to a field in struct cpuinfo_x86
>  x86: Remove #ifdef CONFIG_SMP sections by moving smp_num_siblings
>    into common.c
>
>  arch/x86/include/asm/perf_event_p4.h  |   14 +++---------
>  arch/x86/include/asm/processor.h      |   10 +++++++++
>  arch/x86/include/asm/smp.h            |   17 ++++----------
>  arch/x86/include/asm/topology.h       |    8 +++----
>  arch/x86/kernel/apic/apic_numachip.c  |    2 +-
>  arch/x86/kernel/cpu/amd.c             |   19 +++++-----------
>  arch/x86/kernel/cpu/common.c          |    5 +++++
>  arch/x86/kernel/cpu/intel_cacheinfo.c |   11 ++--------
>  arch/x86/kernel/cpu/mcheck/mce_amd.c  |    2 --
>  arch/x86/kernel/cpu/perf_event_p4.c   |    4 ++--
>  arch/x86/kernel/cpu/proc.c            |    5 ++---
>  arch/x86/kernel/process.c             |    5 ++---
>  arch/x86/kernel/smpboot.c             |   39 +++++++--------------------------
>  arch/x86/oprofile/nmi_int.c           |    6 -----
>  arch/x86/oprofile/op_model_p4.c       |   11 +---------
>  arch/x86/xen/smp.c                    |    6 -----
>  drivers/cpufreq/p4-clockmod.c         |    2 --
>  drivers/cpufreq/powernow-k8.c         |    7 ------
>  drivers/cpufreq/speedstep-ich.c       |    2 --
>  drivers/hwmon/coretemp.c              |    4 ----
>  20 files changed, 48 insertions(+), 131 deletions(-)
>

I know I sent this right at the last merge window, so it likely
slipped under your radar. If you still want it, please let me know if
there is anything that you think should be improved.

--
Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/