kernel-fxtec-pro1x/arch
Benjamin Herrenschmidt c5cf0e30bf [PATCH] powerpc: Fix buglet with MMU hash management
Our MMU hash management code would not set the "C" bit (changed bit) in
the hardware PTE when updating a RO PTE into a RW PTE. That would cause
the hardware to possibly to a write back to the hash table to set it on
the first store access, which in addition to being a performance issue,
might also hit a bug when running with native hash management (non-HV)
as our code is specifically optimized for the case where no write back
happens.

Thus there is a very small therocial window were a hash PTE can become
corrupted if that HPTE has just been upgraded to read write, a store
access happens on it, and that races with another processor evicting
that same slot. Since eviction (caused by an almost full hash) is
extremely rare, the bug is very unlikely to happen fortunately.

This fixes by allowing the updating of the protection bits in the native
hash handling to also set (but not clear) the "C" bit, and, in order to
also improve performances in the general case, by always setting that
bit on newly inserted hash PTE so that writeback really never happens.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-06-09 21:20:59 +10:00
..
alpha [PATCH] Alpha: strncpy() fix 2006-04-25 07:51:06 -07:00
arm [PATCH] ARM: Fix XScale PMD setting 2006-05-31 16:27:44 -07:00
arm26 [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
cris [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
frv [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
h8300 [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
i386 Revert "[PATCH] i386/x86_64: Force pci=noacpi on HP XW9300" 2006-05-30 20:32:15 -07:00
ia64 [IA64] one-line cleanup on set_irq_affinity_info 2006-05-17 06:20:59 -07:00
m32r [PATCH] m32r: update switch_to macro for tuning 2006-04-19 09:13:51 -07:00
m68k [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
m68knommu [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
mips [MIPS] Treat R14000 like R10000. 2006-06-01 00:28:35 +01:00
parisc [PARISC] Add new entries to the syscall table 2006-04-21 22:20:35 +00:00
powerpc [PATCH] powerpc: Fix buglet with MMU hash management 2006-06-09 21:20:59 +10:00
ppc Merge branch 'merge' 2006-06-01 19:05:23 +10:00
s390 [PATCH] s390: fix typo in stop_hz_timer. 2006-05-25 12:09:55 -07:00
sh [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
sh64 [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
sparc [SPARC]: Add robust futex syscall entries. 2006-05-21 21:22:53 -07:00
sparc64 [SPARC64]: Respect gfp_t argument to dma_alloc_coherent(). 2006-05-23 02:07:22 -07:00
um [PATCH] uml: change timer initialization 2006-05-03 20:05:40 -07:00
v850 [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
x86_64 [PATCH] x86_64: Don't do syscall exit tracing twice 2006-05-30 20:31:06 -07:00
xtensa [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00