me too of course. If an irq isn't making UP-transparent the speculative
actions of the BTB, then 2.5 is still buggy in allowing the fast mode in
UP machines (beause the irq can allocate the pagetable and scribble over
it so then the tlb will be filled with global garbage). To make things
more clear this is what will happen right now in 2.5 if the irq isn't
serializing the BTB speculative tlb fills:
CPU1
munmap
.. speculation starts ..
.. TLB reads pmd entry, so it now knows the phys address of the pte ..
clear pmd entry
free pte
(doesn't matter if we clear the pmd entry or if we free the pte first)
irq fired, BTB speculative actions aren't stopped they runs speculative in parallel to the irq
alloc page - get old pte
scribble on pte
.. TLB reads the contents of the pte at the phys address now invalid ..
.. tlb fill ends and we filled the tlb with random pte contents marked global ...
If instead the irq is serializing the BTB actions as expected (the
invariant is that an UP machine will never see any speculative action
internally, speculations is a problem only with SMP on shared memory
or while talking with hardware devices outside the local cpu), then it
means the above cannot happen, so 2.5 isn't buggy in allowing the
fastmode with 1 cpu systems, but then it also means 2.5 is overkill in
the leave_mm hack and so we can drop it.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/