[GIT PULL] percpu for 2.6.31

From: Tejun Heo
Date: Thu Jun 18 2009 - 04:06:32 EST


Hello, Linus.

Please pull from percpu-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-linus

This contains two logical changes 1. convert most archs to dynamic
percpu allocator and 2. fix x86 lpage allocator and re-enable it.
Both have been posted multiple times and shouldn't break most of the
popular archs. One known breakage is on parisc which Kyle agreed to
fix post merge.

Ingo, does this look okay to you? If so, I'll create for-next branch
with the rest of patches and also push other percpu changes through it
(Rusty's drop prefix patches and Christoph's this_cpu_* patches) and
publish it to linux-next.

Thanks.

Documentation/kernel-parameters.txt | 6 +
arch/alpha/include/asm/percpu.h | 101 +---------
arch/alpha/include/asm/tlbflush.h | 1 +
arch/arm/kernel/smp.c | 4 +-
arch/arm/mach-kirkwood/cpuidle.c | 2 +-
arch/avr32/kernel/cpu.c | 2 +-
arch/blackfin/mach-common/smp.c | 2 +-
arch/blackfin/mm/sram-alloc.c | 22 +-
arch/cris/include/asm/mmu_context.h | 3 +-
arch/cris/mm/fault.c | 2 +-
arch/ia64/Kconfig | 3 +
arch/ia64/kernel/crash.c | 2 +-
arch/ia64/kernel/smp.c | 4 +-
arch/ia64/kernel/traps.c | 2 +-
arch/ia64/kvm/kvm-ia64.c | 2 +-
arch/ia64/sn/kernel/setup.c | 2 +-
arch/ia64/xen/irq_xen.c | 24 ++--
arch/mips/kernel/cevt-bcm1480.c | 6 +-
arch/mips/kernel/cevt-sb1250.c | 6 +-
arch/mips/kernel/topology.c | 2 +-
arch/mips/sgi-ip27/ip27-timer.c | 4 +-
arch/parisc/kernel/irq.c | 2 +-
arch/parisc/kernel/topology.c | 2 +-
arch/powerpc/Kconfig | 3 +
arch/powerpc/kernel/cacheinfo.c | 2 +-
arch/powerpc/kernel/process.c | 2 +-
arch/powerpc/kernel/sysfs.c | 4 +-
arch/powerpc/kernel/time.c | 6 +-
arch/powerpc/mm/pgtable.c | 2 +-
arch/powerpc/mm/stab.c | 4 +-
arch/powerpc/oprofile/op_model_cell.c | 2 +-
arch/powerpc/platforms/cell/cpufreq_spudemand.c | 2 +-
arch/powerpc/platforms/cell/interrupt.c | 2 +-
arch/powerpc/platforms/ps3/interrupt.c | 2 +-
arch/powerpc/platforms/ps3/smp.c | 2 +-
arch/powerpc/platforms/pseries/dtl.c | 2 +-
arch/powerpc/platforms/pseries/iommu.c | 2 +-
arch/s390/appldata/appldata_base.c | 2 +-
arch/s390/include/asm/percpu.h | 32 +---
arch/s390/kernel/nmi.c | 2 +-
arch/s390/kernel/smp.c | 2 +-
arch/s390/kernel/time.c | 4 +-
arch/s390/kernel/vtime.c | 2 +-
arch/sh/kernel/localtimer.c | 2 +-
arch/sh/kernel/topology.c | 2 +-
arch/sparc/Kconfig | 3 +
arch/sparc/kernel/nmi.c | 6 +-
arch/sparc/kernel/pci_sun4v.c | 2 +-
arch/sparc/kernel/sysfs.c | 4 +-
arch/sparc/kernel/time_64.c | 4 +-
arch/x86/Kconfig | 3 -
arch/x86/include/asm/percpu.h | 9 +
arch/x86/kernel/apic/apic.c | 2 +-
arch/x86/kernel/apic/nmi.c | 8 +-
arch/x86/kernel/apic/x2apic_cluster.c | 2 +-
arch/x86/kernel/cpu/common.c | 2 +-
arch/x86/kernel/cpu/cpu_debug.c | 6 +-
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 4 +-
arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 2 +-
arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c | 4 +-
arch/x86/kernel/cpu/intel_cacheinfo.c | 6 +-
arch/x86/kernel/cpu/mcheck/mce_amd_64.c | 4 +-
arch/x86/kernel/cpu/mcheck/mce_intel_64.c | 2 +-
arch/x86/kernel/cpu/mcheck/therm_throt.c | 4 +-
arch/x86/kernel/cpu/perf_counter.c | 16 +-
arch/x86/kernel/cpu/perfctr-watchdog.c | 2 +-
arch/x86/kernel/ds.c | 4 +-
arch/x86/kernel/hpet.c | 2 +-
arch/x86/kernel/irq_32.c | 8 +-
arch/x86/kernel/kvm.c | 2 +-
arch/x86/kernel/kvmclock.c | 2 +-
arch/x86/kernel/paravirt.c | 2 +-
arch/x86/kernel/process_64.c | 2 +-
arch/x86/kernel/setup_percpu.c | 219 ++++++++++++++++------
arch/x86/kernel/smpboot.c | 2 +-
arch/x86/kernel/tlb_uv.c | 6 +-
arch/x86/kernel/topology.c | 2 +-
arch/x86/kernel/uv_time.c | 2 +-
arch/x86/kernel/vmiclock_32.c | 2 +-
arch/x86/kvm/svm.c | 2 +-
arch/x86/kvm/vmx.c | 6 +-
arch/x86/kvm/x86.c | 2 +-
arch/x86/mm/kmemcheck/kmemcheck.c | 2 +-
arch/x86/mm/kmmio.c | 2 +-
arch/x86/mm/mmio-mod.c | 4 +-
arch/x86/mm/pageattr.c | 65 ++++---
arch/x86/oprofile/nmi_int.c | 4 +-
arch/x86/xen/enlighten.c | 4 +-
arch/x86/xen/multicalls.c | 2 +-
arch/x86/xen/smp.c | 8 +-
arch/x86/xen/spinlock.c | 4 +-
arch/x86/xen/time.c | 10 +-
block/as-iosched.c | 10 +-
block/blk-softirq.c | 2 +-
block/cfq-iosched.c | 10 +-
crypto/sha512_generic.c | 2 +-
drivers/acpi/processor_core.c | 2 +-
drivers/acpi/processor_thermal.c | 2 +-
drivers/base/cpu.c | 2 +-
drivers/char/random.c | 2 +-
drivers/connector/cn_proc.c | 2 +-
drivers/cpufreq/cpufreq.c | 8 +-
drivers/cpufreq/cpufreq_conservative.c | 12 +-
drivers/cpufreq/cpufreq_ondemand.c | 15 +-
drivers/cpufreq/cpufreq_stats.c | 2 +-
drivers/cpufreq/cpufreq_userspace.c | 11 +-
drivers/cpufreq/freq_table.c | 2 +-
drivers/cpuidle/governors/ladder.c | 2 +-
drivers/cpuidle/governors/menu.c | 2 +-
drivers/crypto/padlock-aes.c | 2 +-
drivers/lguest/page_tables.c | 2 +-
drivers/lguest/x86/core.c | 2 +-
drivers/xen/events.c | 13 +-
fs/buffer.c | 4 +-
fs/file.c | 2 +-
include/linux/percpu-defs.h | 10 +-
include/linux/percpu.h | 12 +-
init/main.c | 24 ---
kernel/kprobes.c | 2 +-
kernel/lockdep.c | 2 +-
kernel/module.c | 6 +-
kernel/perf_counter.c | 8 +-
kernel/printk.c | 2 +-
kernel/profile.c | 4 +-
kernel/rcuclassic.c | 4 +-
kernel/rcupdate.c | 2 +-
kernel/rcupreempt.c | 10 +-
kernel/rcutorture.c | 4 +-
kernel/sched.c | 30 ++--
kernel/sched_clock.c | 2 +-
kernel/sched_rt.c | 2 +-
kernel/smp.c | 6 +-
kernel/softirq.c | 6 +-
kernel/softlockup.c | 6 +-
kernel/taskstats.c | 4 +-
kernel/time/tick-sched.c | 2 +-
kernel/time/timer_stats.c | 2 +-
kernel/timer.c | 2 +-
kernel/trace/ftrace.c | 2 +-
kernel/trace/ring_buffer.c | 2 +-
kernel/trace/trace.c | 6 +-
kernel/trace/trace_events.c | 6 +-
kernel/trace/trace_hw_branches.c | 4 +-
kernel/trace/trace_irqsoff.c | 2 +-
kernel/trace/trace_stack.c | 2 +-
kernel/trace/trace_sysprof.c | 2 +-
kernel/trace/trace_workqueue.c | 2 +-
lib/radix-tree.c | 2 +-
lib/random32.c | 2 +-
mm/Makefile | 2 +-
mm/allocpercpu.c | 28 +++
mm/kmemleak-test.c | 6 +-
mm/page-writeback.c | 5 +-
mm/percpu.c | 64 ++++++-
mm/quicklist.c | 2 +-
mm/slab.c | 4 +-
mm/slub.c | 6 +-
mm/swap.c | 4 +-
mm/vmalloc.c | 2 +-
mm/vmstat.c | 2 +-
net/core/drop_monitor.c | 2 +-
net/core/flow.c | 6 +-
net/core/sock.c | 2 +-
net/ipv4/route.c | 2 +-
net/ipv4/syncookies.c | 4 +-
net/ipv6/syncookies.c | 4 +-
net/rds/ib_stats.c | 2 +-
net/rds/iw_stats.c | 2 +-
net/rds/page.c | 2 +-
net/socket.c | 2 +-
170 files changed, 653 insertions(+), 553 deletions(-)

Jesper Nilsson (1):
CRIS: Change DEFINE_PER_CPU of current_pgd to be non volatile.

Tejun Heo (16):
percpu: fix too lazy vunmap cache flushing
percpu: use dynamic percpu allocator as the default percpu allocator
percpu: cleanup percpu array definitions
use-percpu-aligned
percpu: clean up percpu variable definitions
percpu: enforce global definition
alpha: kill unnecessary __used attribute in PER_CPU_ATTRIBUTES
alpha: switch to dynamic percpu allocator
s390: switch to dynamic percpu allocator
x86: fix duplicate free in setup_pcpu_remap() failure path
x86: rename remap percpu first chunk allocator to lpage
x86: prepare setup_pcpu_lpage() for pageattr fix
x86: reorganize cpa_process_alias()
x86: fix pageattr handling for lpage percpu allocator and re-enable it
x86: implement percpu_alloc kernel parameter
x86: ensure percpu lpage doesn't consume too much vmalloc space


--
tejun
--
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/