Intel Continues Prepping PKS For The Linux Kernel (Protection Keys for Supervisor)
Intel engineers continue working on "Protection Keys for Supervisor" support for the Linux kernel as a feature coming to a future generation of processors (presumably Sapphire Rapids). The initial users of this PKS support will be helping to protect persistent memory as well as adding safeguards to Trusted Keys within the Linux kernel.
Protection Keys for Supervisor (PKS) is akin memory protection keys (PKU / PKEYs) that has been supported since 1st Gen Xeon Scalable processors while the "supervisor" focus is in reference to the elevated ring with the kernel. The PKS support will presumably be Sapphire Rapids, based on the recent bring-up of other features coming to that Ice Lake Xeon successor due out around the end of 2021.
Linux for quite some time now has implemented PKU support for memory protection keys while the PKS kernel infrastructure has been coming about along with initial use-cases since the original "request for comments" patches back during the summer months.
There has been the core PKS code for the Linux kernel to serve as a new page protection mechanism for supervisor pages. The PKS functionality is similar to PKU besides the supervisor mode aspect.
The initial use-case for PKS in the Linux kernel has been a PMEM implementation for helping to prevent stray writes to persistent memory. Given that writing to wrong areas of persistent memory could yield latency data corruption, PKS could help in this area
The other new area being explored for PKS is protecting kernel Trusted Keys to help prevent them from potentially being leaked by further restricting access with this hardware security feature.
So all that code is moving along and working its way towards the mainline kernel albeit not coming with the imminent Linux 5.10 cycle. The patches don't provide any further indication as to when the PKS support will be added to Intel CPUs, but given the timing is likely for Sapphire Rapids otherwise early work towards Granite Rapids. We'll see what other PKS use-cases come up in the months ahead.
Protection Keys for Supervisor (PKS) is akin memory protection keys (PKU / PKEYs) that has been supported since 1st Gen Xeon Scalable processors while the "supervisor" focus is in reference to the elevated ring with the kernel. The PKS support will presumably be Sapphire Rapids, based on the recent bring-up of other features coming to that Ice Lake Xeon successor due out around the end of 2021.
Linux for quite some time now has implemented PKU support for memory protection keys while the PKS kernel infrastructure has been coming about along with initial use-cases since the original "request for comments" patches back during the summer months.
There has been the core PKS code for the Linux kernel to serve as a new page protection mechanism for supervisor pages. The PKS functionality is similar to PKU besides the supervisor mode aspect.
The initial use-case for PKS in the Linux kernel has been a PMEM implementation for helping to prevent stray writes to persistent memory. Given that writing to wrong areas of persistent memory could yield latency data corruption, PKS could help in this area
The other new area being explored for PKS is protecting kernel Trusted Keys to help prevent them from potentially being leaked by further restricting access with this hardware security feature.
So all that code is moving along and working its way towards the mainline kernel albeit not coming with the imminent Linux 5.10 cycle. The patches don't provide any further indication as to when the PKS support will be added to Intel CPUs, but given the timing is likely for Sapphire Rapids otherwise early work towards Granite Rapids. We'll see what other PKS use-cases come up in the months ahead.
1 Comment