On Fri, Mar 23, 2018 at 5:40 PM, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> wrote: > > Well, rats. This somehow makes things slower with PCIDs on. .. what happens when you enable global pages with PCID? You disabled them explicitly because you thought they wouldn't matter.. Even with PCID, a global TLB entry for the shared pages would make sense, because it's now just *one* entry in the TLB rather that "one per PCID and one for the kernel mapping". So even if in theory the lifetime of the TLB entry is the same, when you have capacity misses it most definitely isn't. And for process tear-down and build-up the per-PCID TLB entry does nothing at all. While for a true global entry, it gets shared even across process creation/deletion. So even ignoring TLB capacity issues, with lots of shortlived processes global TLB entries are much better. It is, of course, possible that I misunderstood what you actually benchmarked. But I assume the above benchmark numbers are with the whole "don't even do global entries if you have PCID". Linus