WSL2-Linux-Kernel/arch/powerpc/include/asm
Benjamin Herrenschmidt 2ca8cf7389 powerpc/mm: Rework context management for CPUs with no hash table
This reworks the context management code used by 4xx,8xx and
freescale BookE.  It adds support for SMP by implementing a
concept of stale context map to lazily flush the TLB on
processors where a context may have been invalidated.  This
also contains the ground work for generalizing such lazy TLB
flushing by just picking up a new PID and marking the old one
stale.  This will be implemented later.

This is a first implementation that uses a global spinlock.

Ideally, we should try to get at least the fast path (context ID
already assigned) lockless or limited to a per context lock,
but for now this will do.

I tried to keep the UP case reasonably simple to avoid adding
too much overhead to 8xx which does a lot of context stealing
since it effectively has only 16 PIDs available.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-21 14:21:15 +11:00
..
iseries
8xx_immap.h
8253pit.h
Kbuild
abs_addr.h
agp.h
asm-compat.h
atomic.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
auxvec.h
backlight.h
bitops.h
bootx.h
btext.h
bug.h powerpc: Fix asm EMIT_BUG_ENTRY with !CONFIG_BUG 2008-12-16 15:53:23 +11:00
bugs.h
byteorder.h powerpc: Use the new byteorder headers 2008-11-06 10:23:55 +11:00
cache.h
cacheflush.h
cell-pmu.h
cell-regs.h
checksum.h
clk_interface.h
code-patching.h
compat.h
cpm.h
cpm1.h
cpm2.h fs_enet: Fix SCC Ethernet on CPM2, and crash in fs_enet_rx_napi() 2008-08-27 05:16:38 -04:00
cputable.h powerpc/4xx: Extended DCR support v2 2008-12-21 14:21:15 +11:00
cputhreads.h
cputime.h
current.h
dbdma.h
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc/4xx: Extended DCR support v2 2008-12-21 14:21:15 +11:00
dcr-regs.h ibm_newemac: Fix EMAC soft reset on 460EX/GT 2008-10-08 15:27:14 -07:00
dcr.h
delay.h
device.h powerpc and sparc: Introduce dev_archdata node accessors 2008-12-03 21:03:54 +11:00
div64.h
dma-mapping.h powerpc: Fix !CONFIG_PPC_NEED_DMA_SYNC_OPS build warning 2008-12-16 14:39:33 +11:00
dma.h
edac.h
eeh.h powerpc/pci: Split pcibios_fixup_bus() into bus setup and device setup 2008-11-06 09:22:37 +11:00
eeh_event.h
elf.h [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY 2008-10-16 15:40:05 +02:00
emergency-restart.h
errno.h
exception.h powerpc: Make it possible to move the interrupt handlers away from the kernel 2008-09-15 11:08:08 -07:00
fb.h
fcntl.h
feature-fixups.h
firmware.h
fixmap.h
floppy.h
fs_pd.h
fsl_gtm.h
fsl_lbc.h powerpc: fix fsl_upm nand driver modular build 2008-10-13 11:48:24 -05:00
ftrace.h ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
futex.h
gpio.h
grackle.h
hardirq.h
heathrow.h
highmem.h powerpc: Add a local_flush_tlb_page to handle kmap_atomic invalidates 2008-12-03 20:46:35 +11:00
hugetlb.h
hvcall.h powerpc: Make CMO paging space pool ID and page size available 2008-08-18 14:22:34 +10:00
hvconsole.h
hvcserver.h
hw_irq.h
hydra.h
i8259.h
ibmebus.h
ide.h cleanup powerpc/include/asm/ide.h 2008-08-18 21:40:03 +02:00
immap_86xx.h
immap_cpm2.h powerpc: Update QE/CPM2 usb_ctlr structures for USB support 2008-11-08 12:39:02 -06:00
immap_qe.h powerpc: Update QE/CPM2 usb_ctlr structures for USB support 2008-11-08 12:39:02 -06:00
io-defs.h
io.h powerpc: Remove dead BIO_VMERGE_BOUNDARY definition 2008-12-16 15:53:19 +11:00
ioctl.h
ioctls.h
iommu.h powerpc: Update remaining dma_mapping_ops to use map/unmap_page 2008-10-31 16:13:48 +11:00
ipcbuf.h
ipic.h
irq.h powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
irq_regs.h
irqflags.h powerpc: Fix lockdep IRQ tracing bug 2008-08-18 14:22:34 +10:00
kdebug.h
kdump.h powerpc: Use is_kdump_kernel() 2008-10-31 16:11:47 +11:00
kexec.h kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kvm.h
kvm_asm.h
kvm_host.h KVM: powerpc: Map guest userspace with TID=0 mappings 2008-10-15 10:15:16 +02:00
kvm_para.h
kvm_ppc.h KVM: ppc: stop leaking host memory on VM exit 2008-11-25 12:02:48 +02:00
libata-portmap.h
linkage.h
lmb.h
local.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
lppaca.h powerpc: Update page-in counter for CMM 2008-11-05 22:08:28 +11:00
lv1call.h
machdep.h powerpc: Merge 32 and 64-bit dma code 2008-09-24 16:26:45 -05:00
macio.h
mc146818rtc.h
mediabay.h
mman.h powerpc: Get USE_STRICT_MM_TYPECHECKS working again 2008-10-14 10:35:27 +11:00
mmu-8xx.h powerpc/mm: Rework context management for CPUs with no hash table 2008-12-21 14:21:15 +11:00
mmu-40x.h powerpc/mm: Rework context management for CPUs with no hash table 2008-12-21 14:21:15 +11:00
mmu-44x.h powerpc/mm: Rework context management for CPUs with no hash table 2008-12-21 14:21:15 +11:00
mmu-fsl-booke.h powerpc/mm: Rework context management for CPUs with no hash table 2008-12-21 14:21:15 +11:00
mmu-hash32.h
mmu-hash64.h powerpc set_huge_psize() false positive 2008-11-30 10:03:35 -08:00
mmu.h
mmu_context.h powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
mmzone.h
module.h
mpc6xx.h
mpc8xx.h
mpc52xx.h
mpc52xx_psc.h
mpc86xx.h
mpc512x.h
mpc8260.h
mpic.h powerpc/mpic: Fix regression caused by change of default IRQ affinity 2008-10-31 16:13:50 +11:00
msgbuf.h
msi_bitmap.h powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
mutex.h powerpc: Optimise mutex 2008-11-19 16:04:58 +11:00
nvram.h
of_device.h powerpc: Remove include of linux/of_device.h from asm/of_device.h 2008-08-20 16:34:59 +10:00
of_platform.h powerpc: Remove include of linux/of_platform.h from asm/of_platform.h 2008-08-20 16:34:58 +10:00
ohare.h
oprofile_impl.h
pSeries_reconfig.h
paca.h powerpc: Make it possible to move the interrupt handlers away from the kernel 2008-09-15 11:08:08 -07:00
page.h Merge commit 'origin' into master 2008-10-21 15:52:04 +11:00
page_32.h POWERPC: Allow 32-bit hashed pgtable code to support 36-bit physical 2008-09-24 16:29:44 -05:00
page_64.h
param.h
parport.h
pasemi_dma.h
pci-bridge.h powerpc: Introduce ppc_pci_flags accessors 2008-12-16 15:53:16 +11:00
pci.h powerpc: Introduce ppc_pci_flags accessors 2008-12-16 15:53:16 +11:00
percpu.h
pgalloc-32.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgalloc-64.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgalloc.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgtable-4k.h
pgtable-64k.h
pgtable-ppc32.h powerpc: Get USE_STRICT_MM_TYPECHECKS working again 2008-10-14 10:35:27 +11:00
pgtable-ppc64.h powerpc: Fix typo in pgtable-ppc64.h 2008-12-16 14:39:32 +11:00
pgtable.h
phyp_dump.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
poll.h
posix_types.h
ppc-pci.h
ppc4xx.h
ppc_asm.h powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
processor.h powerpc: Remove `have_of' global variable 2008-12-16 15:52:57 +11:00
prom.h powerpc: Add of_find_next_cache_node() 2008-12-21 14:21:14 +11:00
ps3.h powerpc/ps3: Add sub-match id modalias support 2008-12-16 14:39:33 +11:00
ps3av.h powerpc/ps3: Replace the flip_ctl logic in ps3av and ps3fb by a mutex 2008-11-19 16:03:54 +11:00
ps3fb.h
ps3stor.h
ptrace.h remove __ARCH_WANT_COMPAT_SYS_PTRACE 2008-11-30 11:00:15 -08:00
qe.h
qe_ic.h
reg.h
reg_8xx.h
reg_booke.h powerpc: Introduce local (non-broadcast) forms of tlb invalidates 2008-09-24 16:29:40 -05:00
reg_fsl_emb.h
resource.h
rheap.h
rio.h
rtas.h powerpc/pseries: Check for GIQ indicator before calling set-indicator 2008-12-16 15:53:13 +11:00
rtc.h
rwsem.h
scatterlist.h
seccomp.h
sections.h Merge commit 'origin' 2008-10-15 11:31:54 +11:00
sembuf.h
serial.h
setjmp.h
setup.h
sfp-machine.h powerpc: Add SPE/EFP math emulation for E500v1/v2 processors. 2008-12-03 08:19:16 -06:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h signals: demultiplexing SIGTRAP signal 2008-09-23 13:26:52 +02:00
signal.h x86, um: get rid of uml signal.h 2008-10-22 22:55:20 -07:00
smp.h powerpc: Provide a separate handler for each IPI action 2008-11-19 16:05:06 +11:00
smu.h
socket.h
sockios.h
sparsemem.h
spinlock.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
spinlock_types.h
spu.h
spu_csa.h
spu_info.h
spu_priv1.h
sstep.h
stat.h
statfs.h PowerPC: Use <asm-generic/statfs.h> 2008-09-06 19:30:15 +01:00
string.h
suspend.h
synch.h powerpc: Optimise smp_wmb 2008-11-19 16:04:55 +11:00
syscall.h
syscalls.h
systbl.h powerpc: Use sys_pause for 32-bit pause entry point 2008-09-15 11:08:39 -07:00
system.h powerpc: Optimise smp_rmb 2008-11-19 16:04:57 +11:00
tce.h
termbits.h
termios.h
thread_info.h
time.h powerpc: Eliminate unused do_gtod variable 2008-11-06 09:49:28 +11:00
timex.h
tlb.h
tlbflush.h powerpc/mm: Rework context management for CPUs with no hash table 2008-12-21 14:21:15 +11:00
topology.h
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-16 15:17:40 -07:00
uaccess.h
ucc.h
ucc_fast.h
ucc_slow.h
ucontext.h
udbg.h
uic.h
unaligned.h
uninorth.h
unistd.h
user.h
vdso.h
vdso_datapage.h powerpc: Improve resolution of VDSO clock_gettime 2008-11-06 09:49:22 +11:00
vga.h
vio.h
xilinx_intc.h
xmon.h
xor.h