[RFC/PATCH] powerpc: tlb flush batch use lazy MMU mode

Benjamin Herrenschmidt benh at kernel.crashing.org
Thu Apr 12 11:35:26 EST 2007


On Tue, 2007-04-10 at 17:09 +1000, Benjamin Herrenschmidt wrote:
> The current tlb flush code on powerpc 64 bits has a subtle race since we
> lost the page table lock due to the possible faulting in of new PTEs
> after a previous one has been removed but before the corresponding hash
> entry has been evicted, which can leads to all sort of fatal problems.
> 
> This patch reworks the batch code completely. It doesn't use the mmu_gather
> stuff anymore. Instead, we use the lazy mmu hooks that were added by the
> paravirt code. They have the nice property that the enter/leave lazy mmu
> mode pair is always fully contained by the PTE lock for a given range
> of PTEs. Thus we can guarantee that all batches are flushed on a given
> CPU before it drops that lock.

 .../...

Ran for a little while on a P5 partition with a few sdet runs and it
seems to be fine. You can apply :-)

Despite the bug being present in 2.6.21 (and earlier), I still think
however that this is .22 material, at least for now.

Ben.





More information about the Linuxppc-dev mailing list