Messages in this thread | | | Subject | Re: [PATCH 08/20] mm: Optimize fullmm TLB flushing | From | Peter Zijlstra <> | Date | Thu, 28 Jun 2012 13:30:48 +0200 |
| |
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)..
| |