Thread (54 messages) 54 messages, 9 authors, 2012-07-24

Re: [PATCH 08/20] mm: Optimize fullmm TLB flushing

From: Peter Zijlstra <peterz@infradead.org>
Date: 2012-06-28 11:31:51
Also in: linux-arch, lkml

On Thu, 2012-06-28 at 13:19 +0200, Martin Schwidefsky wrote:
The cpu can create speculative TLB entries, but only if it runs in the
mode that uses the respective mm. We have two mm's active at the same
time, the kernel mm (init_mm) and the user mm. While the cpu runs only
in kernel mode it is not allowed to create TLBs for the user mm.
While running in user mode it is allowed to speculatively create TLBs.
OK, that's neat.
Basically we have two special requirements on s390:
1) do not modify ptes while attached to another cpu except with the
   special IPTE / IDTE instructions
Right, and your fullmm case works by doing a global invalidate after all
threads have ceased userspace execution, this allows you to do away with
the IPTE/IDTE instructions since there's no other active cpus on the
userspace mm anymore.

2) do a TLB flush before freeing any kind of page table page, s390
   needs a flush for pud, pmd & pte tables. 
Right, we do that (now)..

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help