A Last Minute Linux 4.17 Pull To Help Non-PCID Systems With KPTI Meltdown Performance

This latest round of page-table isolation updates should help out systems lacking PCID, Process Context Identifiers. The KPTI code makes use of PCID for reducing the performance overhead of this Meltdown mitigation technique. PCID has been around since the Intel Westmere days, but now the latest kernel patches will help offset the KPTI performance impact for systems lacking PCID.
The patches support using global pages with page-table isolation. Allowing the user/kernel shared areas to be marked "GLOBAL" should reduce the TLB overhead on systems lacking PCID. Back when this Meltdown mitigation work was known as KAISER they carried similar functionality, but got lost along the way.
Now thanks to work by Dave Hansen and other kernel developers, this using of global pages with PTI has been restored and ready for mainlining with Linux 4.17. But as a reminder it is expected to just be benefiting pre-Westmere era hardware, which was introduced in 2010.
This work and other changes are found in the latest x86/pti pull request.
4 Comments