linux/arch/powerpc/kernel
Christophe Leroy bb7f380849 powerpc/8xx: Don't use page table for linear memory space
Instead of using the first level page table to define mappings for
the linear memory space, we can use direct mapping from the TLB
handling routines. This has several advantages:
* No need to read the tables at each TLB miss
* No issue in 16k pages mode where the 1st level table maps 64 Mbytes

The size of the available linear space is known at system startup.
In order to avoid data access at each TLB miss to know the memory
size, the TLB routine is patched at startup with the proper size

This patch provides a 10%-15% improvment of TLB miss handling for
kernel addresses

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <oss@buserror.net>
2016-07-09 02:02:48 -05:00
..
vdso32 powerpc: enable UBSAN support 2016-01-20 17:09:18 -08:00
vdso64 powerpc: enable UBSAN support 2016-01-20 17:09:18 -08:00
.gitignore
align.c powerpc: Send SIGBUS on unaligned copy and paste 2016-07-05 23:49:51 +10:00
asm-offsets.c powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
audit.c
btext.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
cacheinfo.c powerpc: Fix missing L2 cache size in /sys/devices/system/cpu 2015-04-11 20:49:28 +10:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/perf: factor out power8 __init_pmu code 2016-07-05 23:49:47 +10:00
cpu_setup_ppc970.S
cputable.c powerpc: Remove unused remnants from A2 cpu 2016-05-11 21:54:00 +10:00
crash_dump.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
crash.c powerpc/sparse: make some things static 2016-06-16 22:23:11 +10:00
dbell.c powerpc/powernv: Fixes for hypervisor doorbell handling 2015-03-20 14:51:53 +11:00
dma-iommu.c powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask 2015-07-13 10:10:55 +10:00
dma-swiotlb.c powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask 2015-07-13 10:10:55 +10:00
dma.c powerpc/dma: dma_set_coherent_mask() should not be GPL only 2015-10-28 14:20:50 +09:00
eeh_cache.c powerpc/eeh: Cache normal BARs, not windows or IOV BARs 2016-03-09 09:58:17 +11:00
eeh_dev.c powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
eeh_driver.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
eeh_event.c powerpc: sparse: static-ify some things 2016-04-12 21:05:18 +10:00
eeh_pe.c powerpc/eeh: fix misleading indentation 2016-04-27 09:19:37 +10:00
eeh_sysfs.c powerpc/eeh: Fix PE state format 2014-11-27 09:32:58 +11:00
eeh.c Revert "powerpc/eeh: Fix crash in eeh_add_device_early() on Cell" 2016-05-12 19:52:21 +10:00
entry_32.S powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
entry_64.S powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
epapr_hcalls.S
epapr_paravirt.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
exceptions-64e.S powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
exceptions-64s.S powerpc/powernv: Rename machine_check_pSeries_early() to powernv 2016-05-11 21:54:11 +10:00
fadump.c powerpc/fadump: Fix build error introduced by recent cleanup 2016-07-05 23:49:46 +10:00
firmware.c
fpu.S powerpc: Add the ability to save FPU without giving it up 2016-03-02 23:34:49 +11:00
fsl_booke_entry_mapping.S powerpc/fsl: Force coherent memory on e500mc derivatives 2015-08-07 23:00:01 -05:00
ftrace.c powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
head_8xx.S powerpc/8xx: Don't use page table for linear memory space 2016-07-09 02:02:48 -05:00
head_32.S
head_40x.S powerpc: Remove check for CONFIG_SERIAL_TEXT_DEBUG 2014-06-11 16:31:21 +10:00
head_44x.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
head_64.S powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
head_booke.h
head_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
hw_breakpoint.c powerpc/hw_breakpoint: Fix oops when destroying hw_breakpoint event 2016-03-03 22:06:08 +11:00
ibmebus.c powerpc: sparse: static-ify some things 2016-04-12 21:05:18 +10:00
idle_6xx.S
idle_book3e.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_e500.S powerpc/e500mc: Remove dead L2 flushing code in idle_e500.S 2015-06-02 21:37:19 -05:00
idle_power4.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
idle_power7.S powerpc/mm: Move hash related mmu-*.h headers to book3s/ 2016-03-03 21:19:21 +11:00
idle.c
io-workarounds.c powerpc/mm: Differentiate between hugetlb and THP during page walk 2015-10-12 15:30:09 +11:00
io.c
iomap.c powerpc/kerenl: Enable EEH for IO accessors 2014-06-24 12:43:13 +10:00
iommu.c powerpc/iommu/powernv: Release replaced TCE 2015-06-11 15:16:49 +10:00
irq.c powerpc/livepatch: Add livepatch stack to struct thread_info 2016-04-14 15:47:06 +10:00
isa-bridge.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c powerpc: Fix kgdb on little endian ppc64le 2016-02-18 00:03:26 +11:00
kprobes.c powerpc/kprobes: Remove kretprobe_trampoline_holder. 2016-06-21 15:30:49 +10:00
kvm_emul.S
kvm.c powerpc: Remove redundant breaks 2015-08-06 15:10:20 +10:00
l2cr_6xx.S
legacy_serial.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
machine_kexec.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
Makefile powerpc/ftrace: Use $(CC_FLAGS_FTRACE) when disabling ftrace 2016-03-07 14:53:55 +11:00
mce_power.c powerpc/mm/radix: Fix CONFIG_PPC_MMU_STD_64 typo 2016-05-11 21:53:59 +10:00
mce.c powerpc updates for 4.7 2016-05-20 10:12:41 -07:00
misc_32.S powerpc/32: Get rid of sub_reloc_offset() 2016-06-14 13:58:26 +10:00
misc_64.S powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
misc.S powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
module_32.c powerpc/module: Only try to generate the ftrace_caller() stub once 2016-03-07 14:53:53 +11:00
module_64.c powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
module.c powerpc/module: Only try to generate the ftrace_caller() stub once 2016-03-07 14:53:53 +11:00
msi.c powerpc: Remove MSI-related PCI controller ops from ppc_md 2015-06-02 11:47:45 +10:00
nvram_64.c powerpc: make kernel/nvram_64.c explicitly non-modular 2016-04-11 20:30:43 +10:00
of_platform.c powerpc/eeh: Do probe on pci_dn 2015-03-24 13:15:52 +11:00
paca.c powerpc: Create a helper for getting the kernel toc value 2016-03-07 14:53:52 +11:00
pci_32.c powerpc: Remove more traces of bootmem 2014-11-19 21:41:51 +11:00
pci_64.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
pci_dn.c powerpc/pci: Fix build with PCI_IOV=y and EEH=n 2016-07-07 16:33:27 +10:00
pci_of_scan.c PCI/MSI: Initialize MSI capability for all architectures 2015-11-24 17:45:18 -06:00
pci-common.c powerpc/pci: Assign fixed PHB number based on device-tree properties 2016-07-07 22:06:55 +10:00
pci-hotplug.c powerpc/pci: Don't scan empty slot 2016-05-11 21:54:26 +10:00
pmc.c
ppc32.h
ppc_ksyms_32.c powerpc32: Remove clear_pages() and define clear_page() inline 2016-03-11 17:20:11 -06:00
ppc_ksyms.c powerpc32: move xxxxx_dcache_range() functions inline 2016-03-11 17:20:12 -06:00
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Load Monitor Register Support 2016-06-21 15:30:50 +10:00
prom_init_check.sh powerpc: Simplify symbol check in prom_init_check.sh 2014-09-25 23:14:46 +10:00
prom_init.c powerpc/pseries: Fix IBM_ARCH_VEC_NRCORES_OFFSET since POWER8NVL was added 2016-06-08 10:40:05 +10:00
prom_parse.c
prom.c powerpc updates for 4.7 2016-05-20 10:12:41 -07:00
ptrace32.c
ptrace.c powerpc/ptrace: Fix out of bounds array access warning 2016-06-06 10:48:07 +10:00
reloc_32.S
reloc_64.S powerpc: Align p_dyn, p_rela and p_st symbols 2014-03-07 13:50:19 +11:00
rtas_flash.c powerpc: Fix endianness of flash_block_list in rtas_flash 2014-07-28 11:30:54 +10:00
rtas_pci.c powerpc: move find_and_init_phbs() to pSeries specific code 2015-04-11 20:49:09 +10:00
rtas-proc.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
rtas-rtc.c
rtas.c powerpc/rtas: Fix array overrun in ppc_rtas() syscall 2016-07-05 23:49:52 +10:00
rtasd.c powerpc/pseries: Fix trivial typo in function name 2016-06-14 16:05:35 +10:00
setup_32.c locking/lockdep: Eliminate lockdep_init() 2016-02-09 12:03:25 +01:00
setup_64.c powerpc: Fix misleading comment in early_setup_secondary() 2016-06-21 15:30:49 +10:00
setup-common.c powerpc: Remove unnecessary CONFIG_SMP #ifdefs 2016-05-11 21:54:01 +10:00
signal_32.c powerpc fixes for 4.4 #2 2015-12-14 20:40:32 +11:00
signal_64.c powerpc: Avoid load hit store in setup_sigcontext() 2016-06-14 13:58:25 +10:00
signal.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
signal.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
smp-tbsync.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
smp.c powerpc: export cpu_to_core_id() 2016-06-21 15:30:51 +10:00
stacktrace.c powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing 2016-01-11 14:27:28 +11:00
suspend.c nosave: consolidate __nosave_{begin,end} in <asm/sections.h> 2014-10-09 22:26:04 -04:00
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S powerpc/fsl-booke: Use SPRN_SPRGn rather than mfsprg/mtsprg 2014-01-07 19:06:03 -06:00
swsusp.c powerpc/mm: Abstraction for switch_mmu_context() 2016-05-01 18:33:04 +10:00
sys_ppc32.c
syscalls.c powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
sysfs.c powerpc/sparse: make some things static 2016-06-16 22:23:11 +10:00
systbl_chk.c powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl_chk.sh powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl.S powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
tau_6xx.c
time.c powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
tm.S powerpc/kernel: Rename PACA_DSCR to PACA_DSCR_DEFAULT 2015-06-07 19:29:00 +10:00
trace_clock.c powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
traps.c powerpc: Load Monitor Register Support 2016-06-21 15:30:50 +10:00
udbg_16550.c powerpc: Fix bad NULL pointer check in udbg_uart_getc_poll() 2014-11-12 13:47:20 +11:00
udbg.c powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
uprobes.c
vdso.c vdso: make arch_setup_additional_pages wait for mmap_sem for write killable 2016-05-23 17:04:14 -07:00
vecemu.c
vector.S powerpc: Add the ability to save VSX without giving it up 2016-03-02 23:34:50 +11:00
vio.c powerpc: sparse: static-ify some things 2016-04-12 21:05:18 +10:00
vmlinux.lds.S arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections 2016-03-25 16:37:42 -07:00