2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 22:24:09 +08:00
linux-next/arch/powerpc/mm
Paul Mackerras 3a8247cc2c powerpc: Only demote individual slices rather than whole process
At present, if we have a kernel with a 64kB page size, and some
process maps something that has to be mapped with 4kB pages (such as a
cache-inhibited mapping on POWER5+, or the eHCA infiniband queue-pair
pages), we change the process to use 4kB pages everywhere.  This hurts
the performance of HPC programs that access eHCA from userspace.

With this patch, the kernel will only demote the slice(s) containing
the eHCA or cache-inhibited mappings, leaving the remaining slices
able to use 64kB hardware pages.

This also changes the slice_get_unmapped_area code so that it is
willing to place a 64k-page mapping into (or across) a 4k-page slice
if there is no better alternative, i.e. if the program specified
MAP_FIXED or if there is not sufficient space available in slices that
are either empty or already have 64k-page mappings in them.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2008-07-01 11:27:57 +10:00
..
40x_mmu.c [POWERPC] Remove and replace uses of PPC_MEMSTART with memstart_addr 2008-04-17 07:46:12 +10:00
44x_mmu.c [POWERPC] Introduce lowmem_end_addr to distinguish from total_lowmem 2008-04-17 07:46:13 +10:00
fault.c [POWERPC] Make setjmp/longjmp code usable outside of xmon 2008-01-25 22:52:50 +11:00
fsl_booke_mmu.c [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero) 2008-04-24 20:58:01 +10:00
hash_low_32.S [POWERPC] powerpc/mm/hash_low_32.S: Remove CVS keyword 2008-05-20 09:34:18 +10:00
hash_low_64.S powerpc: Free a PTE bit on ppc64 with 64K pages 2008-06-30 22:30:53 +10:00
hash_native_64.c [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
hash_utils_64.c powerpc: Only demote individual slices rather than whole process 2008-07-01 11:27:57 +10:00
hugetlbpage.c powerpc: Free a PTE bit on ppc64 with 64K pages 2008-06-30 22:30:53 +10:00
init_32.c [POWERPC] Move declaration of init_bootmem_done into system.h 2008-05-14 22:31:44 +10:00
init_64.c Merge branch 'linux-2.6' into powerpc-next 2008-05-16 23:13:42 +10:00
Makefile [LIB]: Make PowerPC LMB code generic so sparc64 can use it too. 2008-02-13 16:56:49 -08:00
mem.c [POWERPC] Make walk_memory_resource available with MEMORY_HOTPLUG=n 2008-06-09 11:32:41 +10:00
mmap.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
mmu_context_32.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
mmu_context_64.c [POWERPC] Tidy up CONFIG_PPC_MM_SLICES code 2007-08-17 11:01:59 +10:00
mmu_decl.h powerpc: Change BAT code to use phys_addr_t 2008-06-30 22:31:03 +10:00
numa.c [POWERPC] Add include of linux/of.h to numa.c 2008-04-24 20:57:32 +10:00
pgtable_32.c powerpc: Change BAT code to use phys_addr_t 2008-06-30 22:31:03 +10:00
pgtable_64.c [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
ppc_mmu_32.c powerpc: Get rid of bitfields in ppc_bat struct 2008-06-30 22:31:05 +10:00
slb_low.S [POWERPC] vmemmap fixes to use smaller pages 2008-05-15 20:49:25 +10:00
slb.c [POWERPC] vmemmap fixes to use smaller pages 2008-05-15 20:49:25 +10:00
slice.c powerpc: Only demote individual slices rather than whole process 2008-07-01 11:27:57 +10:00
stab.c [POWERPC] Fix sparse warnings in arch/powerpc/mm 2008-05-14 22:31:46 +10:00
subpage-prot.c [POWERPC] Provide a way to protect 4k subpages when using 64k pages 2008-01-24 10:06:01 +11:00
tlb_32.c powerpc: tlb_32.c build fix 2007-07-21 17:49:16 -07:00
tlb_64.c [POWERPC] Remove duplicate variable definitions in mm/tlb_64.c 2008-05-14 22:31:49 +10:00