Re: [PATCH 10/11] arm64/kvm: context-switch ptrauth registers
From: Will Deacon <hidden>
Date: 2017-08-01 14:32:29
Also in:
kvmarm, linux-arm-kernel, lkml
On Tue, Aug 01, 2017 at 03:26:07PM +0100, Mark Rutland wrote:
On Tue, Aug 01, 2017 at 01:00:14PM +0200, Christoffer Dall wrote:quoted
On Wed, Jul 19, 2017 at 05:01:31PM +0100, Mark Rutland wrote:quoted
When pointer authentication is supported, a guest may wish to use it. This patch adds the necessary KVM infrastructure for this to work, with a semi-lazy context switch of the pointer auth state. When we schedule a vcpu, we disable guest usage of pointer authentication instructions and accesses to the keys. While these are disabled, we avoid context-switching the keys. When we trap the guest trying to use pointer authentication functionality, we change to eagerly context-switching the keys, and enable the feature. The next time the vcpu is scheduled out/in, we start again. This is sufficient for systems with uniform pointer authentication support. For systems with mismatched support, it will be necessary toWhat is mismatched support? You mean systems where one CPU has ptrauth and another one doesn't (or if they both have it but in different ways)?Both! Any case where the support is not uniform across all CPUs. A CPU can implement address auth and/or generic auth, and either may use an architected algorithm or an IMP DEF algorithm. Even if all CPUs report an IMP DEF algorithm, the particular algorithm may differ across CPUs.
I know you don't like it, but I think we should resort to MIDR at that point because otherwise IMP DEF algorithms will never be used by Linux and people will complain. Will