linux/arch
Jack Steiner d74700e604 [IA64-SGI] Missed TLB flush
I see why the problem exists only on SN. SN uses a different hardware
mechanism to purge TLB entries across nodes.

It looks like there is a bug in the SN TLB flushing code. During context switch,
kernel threads inherit the mm of the task that was previously running on the
cpu. This confuses the code in sn2_global_tlb_purge().

The result is a missed TLB purge for the task that owns the "borrowed" mm.

(I hit the problem running heavy stress where kswapd was purging code pages of
a user task that woke kswapd. The user task took a SIGILL fault trying to
execute code in the page that had been ripped out from underneath it).

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-12-16 10:46:25 -08:00
..
alpha [PATCH] arch/alpha/kernel/machvec_impl.h: C99 struct initializer 2005-12-15 10:04:31 -08:00
arm [ARM] 3205/1: Handle new EABI relocations when loading kernel modules. 2005-12-14 22:04:22 +00:00
arm26 [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
cris [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
frv [PATCH] FRV: Make the FRV arch work again 2005-11-28 14:42:23 -08:00
h8300 [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
i386 [PATCH] i386,amd64: ioremap.c __iomem annotations 2005-12-15 10:04:30 -08:00
ia64 [IA64-SGI] Missed TLB flush 2005-12-16 10:46:25 -08:00
m32r [PATCH] m32r: M3A-2170(Mappi-III) IDE support 2005-11-28 14:42:24 -08:00
m68k [PATCH] m68k: convert thread flags to use bit fields 2005-11-13 18:14:14 -08:00
m68knommu [PATCH] m68knommu: move some platform irq support out of irq.h 2005-11-07 08:00:47 -08:00
mips [PATCH] mips: setup_zero_pages count 1 2005-12-12 08:57:43 -08:00
parisc [PARISC] Remove unused variable in signal.c 2005-11-17 16:43:52 -05:00
powerpc [PATCH] arch/powerpc/kernel/syscalls.c __user annotations 2005-12-15 10:04:31 -08:00
ppc [PATCH] ppc32: set smp_tb_synchronized on UP with SMP kernel 2005-12-12 14:26:39 +11:00
s390 [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sh [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sh64 [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sparc [PATCH] arch/sparc/kernel/led.c __user annotations 2005-12-15 10:01:29 -08:00
sparc64 [PATCH] kprobes: increment kprobe missed count for multiprobes 2005-12-12 08:57:45 -08:00
um [PATCH] uml: fix compile error for tt 2005-12-12 08:57:43 -08:00
v850 [PATCH] v850: use generic hardirq code 2005-11-15 08:59:20 -08:00
x86_64 [PATCH] i386,amd64: ioremap.c __iomem annotations 2005-12-15 10:04:30 -08:00
xtensa Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-11 09:24:26 -08:00