1
linux/arch/powerpc/kernel
Fenghua Yu 5fb7dc37dc define new percpu interface for shared data
per cpu data section contains two types of data.  One set which is
exclusively accessed by the local cpu and the other set which is per cpu,
but also shared by remote cpus.  In the current kernel, these two sets are
not clearely separated out.  This can potentially cause the same data
cacheline shared between the two sets of data, which will result in
unnecessary bouncing of the cacheline between cpus.

One way to fix the problem is to cacheline align the remotely accessed per
cpu data, both at the beginning and at the end.  Because of the padding at
both ends, this will likely cause some memory wastage and also the
interface to achieve this is not clean.

This patch:

Moves the remotely accessed per cpu data (which is currently marked
as ____cacheline_aligned_in_smp) into a different section, where all the data
elements are cacheline aligned. And as such, this differentiates the local
only data and remotely accessed data cleanly.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: <linux-arch@vger.kernel.org>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-19 10:04:44 -07:00
..
vdso32 [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval 2007-06-26 14:41:19 +10:00
vdso64 Fix VDSO gettimeofday() when called with NULL struct timeval. 2007-06-29 21:27:00 -07:00
align.c [POWERPC] Alignment exception uses __get/put_user_inatomic 2007-04-13 04:09:38 +10:00
asm-offsets.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-09 12:56:01 -07:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
binfmt_elf32.c
btext.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu_setup_6xx.S
cpu_setup_pa6t.S [POWERPC] pasemi: Enable one more hid bit 2007-04-24 21:31:49 +10:00
cpu_setup_ppc970.S
cputable.c [POWERPC] Oprofile support for Power 5++ 2007-07-11 13:21:46 +10:00
crash_dump.c
crash.c
dma_64.c
entry_32.S [POWERPC] Fix COMMON symbol warnings 2007-05-17 21:10:15 +10:00
entry_64.S [POWERPC] Clear RI bit in MSR before restoring r13 when returning to userspace 2007-02-07 14:03:23 +11:00
firmware.c
fpu.S
head_4xx.S
head_8xx.S
head_32.S [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
head_44x.S [POWERPC] Early serial debug support for PPC44x 2007-05-08 14:47:33 +10:00
head_64.S [POWERPC] Correct __secondary_hold comment 2007-06-28 19:16:47 +10:00
head_booke.h
head_fsl_booke.S [POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S 2007-02-13 16:13:27 -06:00
ibmebus.c [POWERPC] ibmebus: change probe/remove interface from using loc-code to DT path 2007-04-13 06:12:42 +10:00
idle_6xx.S
idle_power4.S [POWERPC] powermac: Support G5 CPU hotplug 2007-05-07 20:31:13 +10:00
idle.c [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
init_task.c
io.c [POWERPC] Move inline asm eieio to using eieio inline function 2007-07-10 00:33:14 -05:00
iomap.c [POWERPC] Remove fastcall function attribute 2007-01-26 01:52:27 -06:00
iommu.c Revert "[POWERPC] DMA 4GB boundary protection" 2007-04-26 19:48:15 +10:00
irq.c [POWERPC] Check for NULL ppc_md.init_IRQ() before calling 2007-07-10 22:03:14 +10:00
isa-bridge.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
kprobes.c jprobes: make jprobes a little safer for users 2007-07-19 10:04:44 -07:00
l2cr_6xx.S
legacy_serial.c Merge branch 'linux-2.6' 2007-05-08 13:37:51 +10:00
lparcfg.c [POWERPC] Replace if-then-else with a switch statement 2007-04-27 21:13:21 +10:00
lparmap.c [POWERPC] iSeries: suppress build warning in lparmap.c 2007-05-09 16:34:59 +10:00
machine_kexec_32.c
machine_kexec_64.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
machine_kexec.c
Makefile [POWERPC] Use global_number in ppc32 pci_controller 2007-06-29 01:58:37 -05:00
misc_32.S [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
misc_64.S [POWERPC] kexec: Send slaves to new kernel earlier 2007-06-25 16:55:16 +10:00
misc.S
module_32.c [POWERPC] Add support for R_PPC_ADDR16_HI relocations 2007-01-24 21:13:58 +11:00
module_64.c
msi.c [POWERPC] PowerPC MSI infrastructure 2007-05-08 13:40:31 +10:00
nvram_64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
of_device.c [POWERPC] Export of_device_get_modalias 2007-05-07 20:31:15 +10:00
of_platform.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
paca.c
pci_32.c PCI: Make pcibios_add_platform_entries() return errors 2007-07-11 16:02:07 -07:00
pci_64.c Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
pci_dn.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
pci-common.c Fix compile failure in arch/powerpc/kernel/pci-common.c 2007-07-18 10:17:39 -07:00
pmc.c [POWERPC] Fix typo: MMCR0_PMA0 != MMCR0_PMAO 2007-05-22 20:20:56 +10:00
ppc32.h
ppc_ksyms.c [POWERPC] Remove unused do_signal export 2007-07-10 21:53:36 +10:00
proc_ppc64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
process.c [POWERPC] Always apply DABR changes on context switches 2007-06-14 22:29:57 +10:00
prom_init.c [POWERPC] Donate idle CPU cycles on dedicated partitions 2007-06-14 22:29:58 +10:00
prom_parse.c [POWERPC] Don't complain if size-cells == 0 in prom_parse() 2007-05-12 11:32:48 +10:00
prom.c [POWERPC] Remove unnecessary #undef printk from prom.c 2007-07-10 22:03:25 +10:00
ptrace32.c [POWERPC] ptrace shouldn't touch FP exec mode 2007-06-14 22:29:57 +10:00
ptrace.c PTRACE_POKEDATA consolidation 2007-07-17 10:23:03 -07:00
rtas_flash.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas_pci.c [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
rtas-proc.c [POWERPC] Fix ppc_rtas_progress_show() 2007-05-17 21:11:15 +10:00
rtas-rtc.c
rtas.c [POWERPC] Remove old interface find_path_device 2007-04-24 22:08:59 +10:00
semaphore.c
setup_32.c [POWERPC] Merge CPU features pertaining to icache coherency 2007-06-14 22:30:16 +10:00
setup_64.c Revert "[POWERPC] Do firmware feature fixups after features are initialised" 2007-07-18 10:17:39 -07:00
setup-common.c [POWERPC] Make the debugfs "powerpc" dir globally accessible 2007-07-10 21:53:50 +10:00
setup.h
signal_32.c [POWERPC] Merge creation of signal frame 2007-06-14 22:29:58 +10:00
signal_64.c Merge branch 'for-2.6.23' into merge 2007-07-11 13:28:26 +10:00
signal.c [POWERPC] Less ifdef's in signal.c/signal.h 2007-06-14 22:29:58 +10:00
signal.h [POWERPC] Less ifdef's in signal.c/signal.h 2007-06-14 22:29:58 +10:00
smp-tbsync.c
smp.c [POWERPC] Fix smp_call_function to be preempt-safe 2007-05-22 20:20:56 +10:00
suspend.c [PATCH] x86: Move swsusp __pa() dependent code to arch portion 2007-05-02 19:27:07 +02:00
swsusp_32.S
swsusp_64.c [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
swsusp_asm64.S [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
swsusp.c powerpc: fixup hard_irq_disable semantics 2007-05-11 08:29:34 -07:00
sys_ppc32.c sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
syscalls.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sysfs.c [POWERPC] arch/powerpc/kernel/sysfs.c: Move NUMA exports 2007-07-10 22:00:57 +10:00
systbl.S
tau_6xx.c
time.c [POWERPC] Modify sched_clock() to make CONFIG_PRINTK_TIME more sane 2007-07-10 22:00:54 +10:00
traps.c Report that kernel is tainted if there was an OOPS 2007-07-17 10:23:02 -07:00
udbg_16550.c [POWERPC] Early serial debug support for PPC44x 2007-05-08 14:47:33 +10:00
udbg.c [POWERPC] Fix console output getting dropped on platforms without udbg_putc 2007-06-14 11:56:17 +10:00
vdso.c [POWERPC] Fix VDSO compile warning 2007-06-14 22:29:55 +10:00
vecemu.c
vector.S
vio.c Merge branch 'linux-2.6' 2007-05-08 13:37:51 +10:00
vmlinux.lds.S define new percpu interface for shared data 2007-07-19 10:04:44 -07:00