kernel-ark/arch
David S. Miller 0fbebed682 sparc64: Fix tsb_grow() in atomic context.
If our first THP installation for an MM is via the set_pmd_at() done
during khugepaged's collapsing we'll end up in tsb_grow() trying to do
a GFP_KERNEL allocation with several locks held.

Simply using GFP_ATOMIC in this situation is not the best option
because we really can't have this fail, so we'd really like to keep
this an order 0 GFP_KERNEL allocation if possible.

Also, doing the TSB allocation from khugepaged is a really bad idea
because we'll allocate it potentially from the wrong NUMA node in that
context.

So what we do is defer the hugepage TSB allocation until the first TLB
miss we take on a hugepage.  This is slightly tricky because we have
to handle two unusual cases:

1) Taking the first hugepage TLB miss in the window trap handler.
   We'll call the winfix_trampoline when that is detected.

2) An initial TSB allocation via TLB miss races with a hugetlb
   fault on another cpu running the same MM.  We handle this by
   unconditionally loading the TSB we see into the current cpu
   even if it's non-NULL at hugetlb_setup time.

Reported-by: Meelis Roos <mroos@ut.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-02-20 09:46:08 -08:00
..
alpha
arm highbank fixes for 3.8 2013-02-09 20:55:03 -08:00
arm64 arm64: elf: fix core dumping to match what glibc expects 2013-01-22 17:50:59 +00:00
avr32 avr32: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
blackfin blackfin: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
c6x c6x: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
cris cris: Provide dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:14 +01:00
frv frv: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:11:15 +01:00
h8300
hexagon
ia64 ia64: kill thread_matches(), unexport ptrace_check_attach() 2013-01-20 12:26:05 -08:00
m32r
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu into akpm 2013-02-12 16:15:39 -08:00
microblaze
mips MIPS: Function tracer: Fix broken function tracing 2013-01-31 15:28:48 +01:00
mn10300 mn10300: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:40 +01:00
openrisc
parisc parisc: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:41 +01:00
powerpc powerpc/mm: Fix hash computation function 2013-02-04 15:15:08 +11:00
s390 s390/timer: avoid overflow when programming clock comparator 2013-01-31 14:01:52 +01:00
score
sh sh: ecovec: add sample amixer settings 2013-01-16 18:30:44 +09:00
sparc sparc64: Fix tsb_grow() in atomic context. 2013-02-20 09:46:08 -08:00
tile tile: tag some code with #ifdef CONFIG_COMPAT 2013-02-08 13:20:43 -05:00
um
unicore32
x86 Revert the PVonHVM kexec. The patch introduces a regression 2013-02-15 12:12:55 -08:00
xtensa xtensa: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:41 +01:00
.gitignore
Kconfig