linux-kernel-test/arch/powerpc/include/asm
Michael Ellerman 1426d5a3bd powerpc: Dynamically allocate pacas
On 64-bit kernels we currently have a 512 byte struct paca_struct for
each cpu (usually just called "the paca"). Currently they are statically
allocated, which means a kernel built for a large number of cpus will
waste a lot of space if it's booted on a machine with few cpus.

We can avoid that by only allocating the number of pacas we need at
boot. However this is complicated by the fact that we need to access
the paca before we know how many cpus there are in the system.

The solution is to dynamically allocate enough space for NR_CPUS pacas,
but then later in boot when we know how many cpus we have, we free any
unused pacas.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-03-09 11:52:52 +11:00
..
iseries powerpc/iseries: Fix pci breakage due to bad dma_data initialization 2009-05-15 16:43:41 +10:00
8xx_immap.h
8253pit.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
abs_addr.h
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
asm-compat.h powerpc: Use lwarx/ldarx hint in bit locks 2010-02-17 14:03:15 +11:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
async_tx.h ppc440spe-adma: adds updated ppc440spe adma driver 2009-12-11 21:24:44 -07:00
atomic.h powerpc: Rename LWSYNC_ON_SMP to PPC_RELEASE_BARRIER, ISYNC_ON_SMP to PPC_ACQUIRE_BARRIER 2010-02-17 14:03:15 +11:00
auxvec.h
backlight.h
bitops.h powerpc: Rename LWSYNC_ON_SMP to PPC_RELEASE_BARRIER, ISYNC_ON_SMP to PPC_ACQUIRE_BARRIER 2010-02-17 14:03:15 +11:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootx.h
btext.h
bug.h powerpc: Convert BUG() to use unreachable() 2009-12-18 14:54:27 +11:00
bugs.h
byteorder.h
cache.h
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
cell-pmu.h
cell-regs.h powerpc/cell: Move CBE_IOPTE_* to <asm/cell-regs.h> 2009-08-20 10:29:26 +10:00
checksum.h
clk_interface.h
code-patching.h
compat.h
cpm1.h powerpc/cpm: Remove SPI defines and spi structs 2009-11-11 21:43:17 -06:00
cpm2.h powerpc/cpm: Move CPMFCR_* defines into cpm.h 2009-11-11 21:43:19 -06:00
cpm.h powerpc/qe&cpm: Implement static inline stubs for non-QE/CPM builds 2009-11-11 21:43:20 -06:00
cputable.h powerpc: Use lwsync for acquire barrier if CPU supports it 2010-02-17 14:03:16 +11:00
cputhreads.h powerpc/mm: Add HW threads support to no_hash TLB management 2009-08-20 10:12:37 +10:00
cputime.h powerpc: Replace per_cpu(, smp_processor_id()) with __get_cpu_var() 2010-02-03 17:39:48 +11:00
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h ppc440spe-adma: adds updated ppc440spe adma driver 2009-12-11 21:24:44 -07:00
dcr.h
delay.h powerpc: Fix spin_event_timeout() to be robust over context switches 2009-07-08 13:50:24 +10:00
device.h powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
disassemble.h
div64.h
dma-mapping.h dma-mapping: fix off-by-one error in dma_capable() 2009-12-16 07:20:12 -08:00
dma.h
edac.h
eeh_event.h
eeh.h
elf.h powerpc: TIF_ABI_PENDING bit removal 2010-02-01 14:00:30 +11:00
emergency-restart.h
emulated_ops.h powerpc: perf_event: Add alignment-faults and emulation-faults software events 2009-10-28 16:13:03 +11:00
errno.h
exception-64e.h powerpc/book3e-64: Add helper function to setup IVORs 2009-08-28 14:24:13 +10:00
exception-64s.h Make head_64.S aware of KVM real mode code 2009-11-05 16:49:57 +11:00
fb.h
fcntl.h
feature-fixups.h powerpc: Fix lwsync feature fixup vs. modules on 64-bit 2010-02-26 18:29:17 +11:00
firmware.h powerpc: Fix hypervisor TLB batching 2009-10-14 16:58:37 +11:00
fixmap.h powerpc: reserve fixmap entries for early debug 2009-12-12 22:24:30 -07:00
floppy.h
fs_pd.h
fsl_gtm.h
fsl_lbc.h powerpc/fsl: Increase the number of possible localbus banks 2009-06-15 21:45:32 -05:00
fsldma.h fsldma: Add DMA_SLAVE support 2009-09-08 17:53:04 -07:00
ftrace.h
futex.h powerpc: Rename LWSYNC_ON_SMP to PPC_RELEASE_BARRIER, ISYNC_ON_SMP to PPC_ACQUIRE_BARRIER 2010-02-17 14:03:15 +11:00
gpio.h powerpc/gpio: support gpio_to_irq() 2009-12-10 20:08:15 -06:00
grackle.h
hardirq.h powerpc: Convert global "BAD" interrupt to per cpu spurious 2010-02-17 14:02:49 +11:00
heathrow.h
highmem.h powerpc/mm: Make k(un)map_atomic out of line 2009-06-26 14:37:25 +10:00
hugetlb.h powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +11:00
hvcall.h Merge commit 'origin/master' into next 2009-12-09 17:14:38 +11:00
hvconsole.h
hvcserver.h
hw_irq.h powerpc: Fix potential compile error irqs_disabled_flags 2009-10-30 17:21:27 +11:00
hydra.h
i8259.h
ibmebus.h
ide.h
immap_86xx.h
immap_cpm2.h powerpc/qe&cpm2: Avoid redefinitions in CPM2 and QE headers 2009-11-11 21:43:18 -06:00
immap_qe.h powerpc/qe&cpm2: Avoid redefinitions in CPM2 and QE headers 2009-11-11 21:43:18 -06:00
io-defs.h
io.h powerpc: Wire up /proc/vmallocinfo to our ioremap() 2009-03-11 17:10:14 +11:00
ioctl.h
ioctls.h
iommu.h powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
ipcbuf.h
ipic.h
irq_regs.h
irq.h powerpc: Make "intspec" pointers in irq_host->xlate() const 2009-12-09 17:10:37 +11:00
irqflags.h
Kbuild
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h powerpc: Fix DEBUG_HIGHMEM build break from d451564669 2009-12-01 09:33:45 +11:00
kprobes.h
kvm_44x.h KVM: ppc: move struct kvmppc_44x_tlbe into 44x-specific header 2009-03-24 11:02:55 +02:00
kvm_asm.h KVM: PPC: Implement 'skip instruction' mode 2010-03-01 12:35:48 -03:00
kvm_book3s_64_asm.h KVM: PPC: Call SLB patching code in interrupt safe manner 2010-03-01 12:35:49 -03:00
kvm_book3s.h KVM: PPC: Fix initial GPR settings 2010-03-01 12:35:55 -03:00
kvm_e500.h KVM: PPC E500: fix tlbcfg emulation 2010-03-01 12:36:06 -03:00
kvm_host.h KVM: ppc/booke: Set ESR and DEAR when inject interrupt to guest 2010-03-01 12:36:10 -03:00
kvm_para.h
kvm_ppc.h KVM: PPC: Fix initial GPR settings 2010-03-01 12:35:55 -03:00
kvm.h powerpc/kvm: Sync guest visible MMU state 2009-12-08 16:02:50 +11:00
libata-portmap.h
linkage.h
lmb.h
local.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2010-03-03 07:34:18 -08:00
lppaca.h powerpc/pseries: Add extended_cede_processor() helper function. 2009-11-24 14:33:03 +11:00
lv1call.h
machdep.h sysfs/cpu: Add probe/release files 2009-12-09 17:09:33 +11:00
macio.h powerpc/macio: Rework hotplug media bay support 2009-12-09 17:09:14 +11:00
mc146818rtc.h
mediabay.h powerpc/macio: Rework hotplug media bay support 2009-12-09 17:09:14 +11:00
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu_context.h Split init_new_context and destroy_context 2009-11-05 16:50:25 +11:00
mmu-8xx.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-40x.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-44x.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-book3e.h powerpc/booke: Move MMUCSR definition into mmu-book3e.h 2009-08-24 20:48:05 -05:00
mmu-hash32.h powerpc: Name xpn & x fields in HW Hash PTE format 2009-08-28 14:24:12 +10:00
mmu-hash64.h powerpc/mm: Fix pgtable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-12-08 15:59:33 +11:00
mmu.h powerpc/mm: Add MMU features for TLB reservation & Paired MAS registers 2009-08-28 14:24:12 +10:00
mmzone.h numa, cpumask: move numa_node_id default implementation to topology.h, fix 2009-03-19 12:51:25 +01:00
module.h module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y 2009-12-15 16:28:34 +10:30
mpc5xxx.h powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function 2009-06-17 00:30:22 -06:00
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h powerpc/mpc5121: enable support for more PSC UARTs 2010-02-16 22:30:04 -07:00
mpc52xx.h mpc52xx/wdt: merge WDT code into the GPT driver 2009-11-13 11:09:31 -07:00
mpc5121.h powerpc/mpc5121: Add machine restart support 2010-02-16 10:36:26 -07:00
mpc8260.h
mpic.h powerpc: Convert mpic locks to raw_spinlock 2010-02-19 14:52:32 +11:00
msgbuf.h
msi_bitmap.h
mutex.h powerpc: Rename LWSYNC_ON_SMP to PPC_RELEASE_BARRIER, ISYNC_ON_SMP to PPC_ACQUIRE_BARRIER 2010-02-17 14:03:15 +11:00
nvram.h powerpc/nvram_64: Remove unused code 2009-10-30 17:21:28 +11:00
of_device.h
of_platform.h of: make of_(un)register_platform_driver common code 2009-05-02 15:36:10 -07:00
ohare.h
oprofile_impl.h
paca.h powerpc: Dynamically allocate pacas 2010-03-09 11:52:52 +11:00
page_32.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
page_64.h powerpc/mm: Cleanup initialization of hugepages on powerpc 2009-10-30 17:20:58 +11:00
page.h powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
param.h powerpc: Simplify param.h by including <asm-generic/param.h> 2010-02-03 17:39:48 +11:00
parport.h parport_pc: Fix build failure drivers/parport/parport_pc.c for powerpc 2009-04-14 08:48:50 -07:00
pasemi_dma.h
pci-bridge.h powerpc/pci: Pull ppc32 PCI features into common 2009-08-28 14:24:15 +10:00
pci.h Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
percpu.h
perf_event_fsl_emb.h powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
perf_event_server.h powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
perf_event.h powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
pgalloc-32.h powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
pgalloc-64.h powerpc/mm: Fix pgtable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-12-08 15:59:33 +11:00
pgalloc.h powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
pgtable-ppc32.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pgtable-ppc64-4k.h powerpc/mm: Split the various pgtable-* headers based on MMU type 2009-03-20 15:56:57 +11:00
pgtable-ppc64-64k.h powerpc/mm: Fix misplaced #endif in pgtable-ppc64-64k.h 2009-08-20 10:12:35 +10:00
pgtable-ppc64.h powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
pgtable.h MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself 2010-02-20 16:41:46 +00:00
phyp_dump.h
pmac_feature.h powerpc: Convert feature_lock to raw_spinlock 2010-02-19 14:52:32 +11:00
pmac_low_i2c.h i2c-powermac: Include the i2c_adapter in struct pmac_i2c_bus 2009-12-06 17:06:19 +01:00
pmac_pfunc.h
pmc.h powerpc/pmc: Don't access lppaca on Book3E 2009-09-24 15:31:39 +10:00
pmi.h
poll.h
posix_types.h
ppc4xx.h
ppc_asm.h powerpc: Adjust base and index registers in Altivec macros 2009-08-28 14:24:12 +10:00
ppc-opcode.h powerpc: Use lwarx/ldarx hint in bit locks 2010-02-17 14:03:15 +11:00
ppc-pci.h powerpc/eeh: Fix a bug when pci structure is null 2010-02-17 14:02:47 +11:00
processor.h powerpc/booke: Add definitions for advanced debug registers 2010-02-17 14:03:17 +11:00
prom.h of: remove undefined request_OF_resource & release_OF_resource 2010-02-14 13:02:45 -07:00
ps3.h ps3: Replace direct file operations by callback 2009-06-15 16:47:26 +10:00
ps3av.h powerpc/ps3: Make ps3av_set_video_mode mode ID signed 2009-03-11 17:10:17 +11:00
ps3fb.h powerpc: Remove duplicated #include's 2009-04-07 15:18:58 +10:00
ps3gpu.h ps3fb: Tear down FB setup during cleanup 2009-06-15 13:26:21 +10:00
ps3stor.h
pSeries_reconfig.h powerpc/pseries: Kernel DLPAR Infrastructure 2009-12-09 17:09:32 +11:00
pte-8xx.h powerpc/8xx: Restore _PAGE_WRITETHRU 2009-12-09 17:10:37 +11:00
pte-40x.h powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL 2009-09-24 15:31:49 +10:00
pte-44x.h powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pte-book3e.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pte-common.h powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL 2009-09-24 15:31:49 +10:00
pte-fsl-booke.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pte-hash32.h powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pte-hash64-4k.h powerpc/mm: Tweak PTE bit combination definitions 2009-03-24 13:47:33 +11:00
pte-hash64-64k.h powerpc/mm: Fix pgtable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-12-08 15:59:33 +11:00
pte-hash64.h powerpc/mm: Add option for non-atomic PTE updates to ppc64 2009-03-24 13:47:34 +11:00
ptrace.h powerpc: Extended ptrace interface 2010-02-17 14:03:17 +11:00
qe_ic.h
qe.h powerpc/qe&cpm: Implement static inline stubs for non-QE/CPM builds 2009-11-11 21:43:20 -06:00
reg_8xx.h
reg_booke.h powerpc/booke: Add definitions for advanced debug registers 2010-02-17 14:03:17 +11:00
reg_fsl_emb.h powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
reg.h KVM: PPC: Emulate trap SRR1 flags properly 2010-03-01 12:35:49 -03:00
resource.h
rheap.h
rio.h
rtas.h locking: Convert raw_spinlock to arch_spinlock 2009-12-14 23:55:32 +01:00
rtc.h
rwsem.h
scatterlist.h powerpc: Use sg->dma_length in sg_dma_len() macro on 32-bit 2009-05-21 15:44:25 +10:00
seccomp.h
sections.h
sembuf.h
serial.h
setjmp.h
setup.h powerpc: derive COMMAND_LINE_SIZE from asm-generic 2009-08-28 14:24:16 +10:00
sfp-machine.h powerpc/math-emu: Change types to work on ppc64 2009-04-02 16:17:36 -05:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h percpu: make percpu symbols in powerpc unique 2009-10-29 22:34:14 +09:00
smu.h
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h
sparsemem.h
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h powerpc: Rename LWSYNC_ON_SMP to PPC_RELEASE_BARRIER, ISYNC_ON_SMP to PPC_ACQUIRE_BARRIER 2010-02-17 14:03:15 +11:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
stat.h
statfs.h
string.h
suspend.h pm: cleanup includes 2009-04-01 08:59:16 -07:00
swab.h
swiotlb.h powerpc: use dma_map_ops struct 2009-08-28 14:24:10 +10:00
synch.h powerpc: Use lwsync for acquire barrier if CPU supports it 2010-02-17 14:03:16 +11:00
syscall.h
syscalls.h
systbl.h powerpc: Fix wrong error code from ppc32 select syscall 2009-11-24 17:00:26 +11:00
system.h powerpc/booke: Add support for advanced debug registers 2010-02-17 14:03:17 +11:00
tce.h
termbits.h
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h powerpc: TIF_ABI_PENDING bit removal 2010-02-01 14:00:30 +11:00
time.h
timex.h
tlb.h powerpc/mm: Rework & cleanup page table freeing code path 2009-08-20 10:24:56 +10:00
tlbflush.h powerpc/mm: Make low level TLB flush ops on BookE take additional args 2009-08-20 10:12:41 +10:00
topology.h powerpc: Reformat SD_NODE_INIT to match x86 2010-02-09 13:56:07 +11:00
trace.h powerpc: tracing: Give hypervisor call tracepoints access to arguments 2009-10-28 16:13:04 +11:00
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess.h
ucc_fast.h
ucc_slow.h
ucc.h
ucontext.h
udbg.h powerpc: gamecube/wii: early debugging using usbgecko 2009-12-12 22:24:31 -07:00
uic.h
unaligned.h
uninorth.h
unistd.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
user.h
vdso_datapage.h
vdso.h powerpc: Move 64bit VDSO to improve context switch performance 2009-08-20 10:12:24 +10:00
vga.h
vio.h
xilinx_intc.h
xilinx_pci.h powerpc/virtex: Add support for Xilinx PCI host bridge 2009-06-06 10:14:22 -06:00
xmon.h
xor.h