alistair23-linux/arch/tile/kernel
Chris Metcalf 621b195515 arch/tile: support multiple huge page sizes dynamically
This change adds support for a new "super" bit in the PTE, using the new
arch_make_huge_pte() method.  The Tilera hypervisor sees the bit set at a
given level of the page table and gangs together 4, 16, or 64 consecutive
pages from that level of the hierarchy to create a larger TLB entry.

One extra "super" page size can be specified at each of the three levels
of the page table hierarchy on tilegx, using the "hugepagesz" argument
on the boot command line.  A new hypervisor API is added to allow Linux
to tell the hypervisor how many PTEs to gang together at each level of
the page table.

To allow pre-allocating huge pages larger than the buddy allocator can
handle, this change modifies the Tilera bootmem support to put all of
memory on tilegx platforms into bootmem.

As part of this change I eliminate the vestigial CONFIG_HIGHPTE support,
which never worked anyway, and eliminate the hv_page_size() API in favor
of the standard vma_kernel_pagesize() API.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2012-05-25 12:48:27 -04:00
..
asm-offsets.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
backtrace.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
compat.c [PATCH v3] ipc: provide generic compat versions of IPC syscalls 2012-03-15 13:13:38 -04:00
compat_signal.c arch/tile: apply commit 74fca9da0 to the compat signal handling as well 2012-05-16 16:01:45 -04:00
early_printk.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
entry.S arch/tile: use interrupt critical sections less 2012-05-25 12:48:20 -04:00
futex_64.S arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
hardwall.c arch/tile: more /proc and /sys file support 2011-05-27 10:39:05 -04:00
head_32.S arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
head_64.S arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
hvglue.lds arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
init_task.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
intvec_32.S arch/tile: fix up some issues in calling do_work_pending() 2012-05-16 16:01:16 -04:00
intvec_64.S arch/tile: use interrupt critical sections less 2012-05-25 12:48:20 -04:00
irq.c arch/tile: use new generic {enable,disable}_percpu_irq() routines 2011-12-03 15:31:49 -05:00
machine_kexec.c arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
Makefile arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
messaging.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
module.c arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
pci-dma.c arch/tile: add a few #includes and an EXPORT to catch up with kernel changes. 2011-12-03 15:31:41 -05:00
pci.c arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
proc.c arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
process.c arch/tile: fix up some issues in calling do_work_pending() 2012-05-16 16:01:16 -04:00
ptrace.c arch/tile: don't allow user code to set the PL via ptrace or signal return 2010-11-01 15:31:17 -04:00
reboot.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
regs_32.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
regs_64.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
relocate_kernel_32.S arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
relocate_kernel_64.S arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
setup.c arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
signal.c tile: Use set_current_blocked() and block_sigmask() 2012-03-13 16:42:05 -04:00
single_step.c arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
smp.c arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
smpboot.c tile/CPU hotplug: Add missing call to notify_cpu_starting() 2012-04-09 14:02:23 -04:00
stack.c arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
sys.c arch/tile: support <asm/cachectl.h> header for cacheflush() syscall 2012-05-25 12:48:24 -04:00
sysfs.c arch/tile: Fix up from commit 8a25a2fd12 2012-03-12 15:31:37 -04:00
tile-desc_32.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
time.c clocksource: tile: convert to use clocksource_register_hz 2011-06-03 17:26:21 -04:00
tlb.c arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
traps.c arch/tile: fix up some minor trap handling issues 2012-04-02 12:12:52 -04:00
vmlinux.lds.S percpu: Always align percpu output section to PAGE_SIZE 2011-03-24 18:50:09 +01:00