[PATCH v6 0/2] MTE support for KVM guest

Steven Price
2020-11-27T15:21:27Z

It's been a week, and I think the comments on v5 made it clear that
enforcing PROT_MTE requirements on the VMM was probably the wrong
approach. So since I've got swap working correctly without that I
thought I'd post a v6 which hopefully addresses all the comments so far.

This series adds support for Arm's Memory Tagging Extension (MTE) to
KVM, allowing KVM guests to make use of it. This builds on the existing
user space support already in v5.10-rc4, see [1] for an overview.

[1] https://lwn.net/Articles/834289/

Changes since v5[2]:

* Revert back to not requiring the VMM to map all guest memory
PROT_MTE. Instead KVM will set the PG_mte_tagged flag automatically
if not present.

* Fixed swap behaviour vs v4 by always checking for saved MTE tags for
user entries in set_pte_at().

[2] https://lore.kernel.org/r/20201119153901.53705-1-steven.price%40arm.com

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 | 8 ++++++++
arch/arm64/include/asm/pgtable.h | 2 +-
arch/arm64/include/asm/sysreg.h | 3 ++-
arch/arm64/kernel/mte.c | 18 +++++++++++++-----
arch/arm64/kvm/arm.c | 9 +++++++++
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 14 ++++++++++++++
arch/arm64/kvm/mmu.c | 16 ++++++++++++++++
arch/arm64/kvm/sys_regs.c | 20 +++++++++++++++-----
include/uapi/linux/kvm.h | 1 +
10 files changed, 82 insertions(+), 12 deletions(-)

--
2.20.1