On Fri, Sep 25, 2020 at 10:36:05AM +0100, Steven Price wrote:
Version 3 of adding MTE support for KVM guests. See the previous (v2)
posting for background:
https://lore.kernel.org/r/20200904160018.29481-1-steven.price%40arm.com
These patches add support to KVM to enable MTE within a guest. They are
based on Catalin's v9 MTE user-space support series[1] (currently in
next).
Changes since v2:
* MTE is no longer a VCPU feature, instead it is a VM cap.
* Being a VM cap means easier probing (check for KVM_CAP_ARM_MTE).
* The cap must be set before any VCPUs are created, preventing any
shenanigans where MTE is enabled for the guest after memory accesses
have been performed.
[1] https://lore.kernel.org/r/20200904103029.32083-1-catalin.marinas@xxxxxxx
Steven Price (2):
arm64: kvm: Save/restore MTE registers
arm64: kvm: Introduce MTE VCPU feature
arch/arm64/include/asm/kvm_emulate.h | 3 +++
arch/arm64/include/asm/kvm_host.h | 7 +++++++
arch/arm64/include/asm/sysreg.h | 3 ++-
arch/arm64/kvm/arm.c | 9 +++++++++
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 14 ++++++++++++++
arch/arm64/kvm/mmu.c | 15 +++++++++++++++
arch/arm64/kvm/sys_regs.c | 20 +++++++++++++++-----
include/uapi/linux/kvm.h | 1 +
8 files changed, 66 insertions(+), 6 deletions(-)
--
2.20.1
Hi Steven,
These patches look fine to me, but I'd prefer we have a working
implementation in QEMU before we get too excited about the KVM
bits. kvmtool isn't sufficient since it doesn't support migration
(at least afaik). In the past we've implemented features in KVM
that look fine, but then issues have been discovered when trying
to enable them from QEMU, where we also support migration. This
feature looks like there's risk of issues with the userspace side.
Although these two patches would probably stay the same, even if
userspace requires more support.