[PATCH 21/27] arm64/sve: KVM: Prevent guests from using SVE

Marc Zyngier marc.zyngier at arm.com
Wed Aug 16 04:22:47 PDT 2017


On 16/08/17 12:20, Marc Zyngier wrote:
> On 16/08/17 11:50, Dave Martin wrote:
>> On Tue, Aug 15, 2017 at 05:33:15PM +0100, Marc Zyngier wrote:
>>> On 09/08/17 13:05, Dave Martin wrote:
>>>> Until KVM has full SVE support, guests must not be allowed to
>>>> execute SVE instructions.
>>>>
>>>> This patch enables the necessary traps, and also ensures that the
>>>> traps are disabled again on exit from the guest so that the host
>>>> can still use SVE if it wants to.
>>>>
>>>> Signed-off-by: Dave Martin <Dave.Martin at arm.com>
>>>> ---
>>>>  arch/arm64/include/asm/kvm_arm.h | 3 ++-
>>>>  arch/arm64/kvm/hyp/switch.c      | 6 +++---
>>>>  2 files changed, 5 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h
>>>> index dbf0537..8a19651 100644
>>>> --- a/arch/arm64/include/asm/kvm_arm.h
>>>> +++ b/arch/arm64/include/asm/kvm_arm.h
>>>> @@ -186,7 +186,7 @@
>>>>  #define CPTR_EL2_TTA	(1 << 20)
>>>>  #define CPTR_EL2_TFP	(1 << CPTR_EL2_TFP_SHIFT)
>>>>  #define CPTR_EL2_TZ	(1 << 8)
>>>> -#define CPTR_EL2_DEFAULT	0x000033ff
>>>> +#define CPTR_EL2_DEFAULT	(0x000033ff & ~CPTR_EL2_TZ)
>>>
>>> I must say I'm not overly fond of this construct. I'd rather introduce a
>>> RES1 field that matches the v8.2 description, instead of this ugly
>>> constant and something that clears it.
>>
>> Sorry, I don't get your meaning here.  v8.2 neither immediately predates
>> or postdates SVE.  
> 
> The ARMv8 ARM (DDI406B_a, D7.2.19) says otherwise. This bit is only

Of course, the days of the ARMv7 ARM are still haunting me. This should
read DDI487B_a.

Apologies for the confusion.

	M.
-- 
Jazz is not dead. It just smells funny...



More information about the linux-arm-kernel mailing list