linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/2] MTE support for KVM guest
@ 2020-11-19 15:38 Steven Price
  2020-11-19 15:39 ` [PATCH v5 1/2] arm64: kvm: Save/restore MTE registers Steven Price
                   ` (2 more replies)
  0 siblings, 3 replies; 38+ messages in thread
From: Steven Price @ 2020-11-19 15:38 UTC (permalink / raw)
  To: Catalin Marinas, Marc Zyngier, Will Deacon
  Cc: Steven Price, James Morse, Julien Thierry, Suzuki K Poulose,
	kvmarm, linux-arm-kernel, linux-kernel, Dave Martin,
	Mark Rutland, Thomas Gleixner, qemu-devel, Juan Quintela,
	Dr. David Alan Gilbert, Richard Henderson, Peter Maydell,
	Haibo Xu, Andrew Jones

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-rc1, see [1] for an overview.

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

Changes since v4[2]:

 * Rebased on v5.10-rc4.

 * Require the VMM to map all guest memory PROT_MTE if MTE is enabled
   for the guest.

 * Add a kvm_has_mte() accessor.

[2] http://lkml.kernel.org/r/20201026155727.36685-1-steven.price%40arm.com

The change to require the VMM to map all guest memory PROT_MTE is
significant as it means that the VMM has to deal with the MTE tags even
if it doesn't care about them (e.g. for virtual devices or if the VMM
doesn't support migration). Also unfortunately because the VMM can
change the memory layout at any time the check for PROT_MTE/VM_MTE has
to be done very late (at the point of faulting pages into stage 2).

The alternative would be to modify the set_pte_at() handler to always
check if there is MTE data relating to a swap page even if the PTE
doesn't have the MTE bit set. I haven't initially done this because of
ordering issues during early boot, but could investigate further if the
above VMM requirement is too strict.

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/sysreg.h            |  3 ++-
 arch/arm64/kvm/arm.c                       |  9 +++++++++
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 14 ++++++++++++++
 arch/arm64/kvm/mmu.c                       |  6 ++++++
 arch/arm64/kvm/sys_regs.c                  | 20 +++++++++++++++-----
 include/uapi/linux/kvm.h                   |  1 +
 8 files changed, 58 insertions(+), 6 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2020-12-17  1:48 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19 15:38 [PATCH v5 0/2] MTE support for KVM guest Steven Price
2020-11-19 15:39 ` [PATCH v5 1/2] arm64: kvm: Save/restore MTE registers Steven Price
2020-11-19 15:39 ` [PATCH v5 2/2] arm64: kvm: Introduce MTE VCPU feature Steven Price
2020-11-19 15:45 ` [PATCH v5 0/2] MTE support for KVM guest Peter Maydell
2020-11-19 15:57   ` Steven Price
2020-11-19 16:39     ` Peter Maydell
2020-11-19 18:42   ` Andrew Jones
2020-11-19 19:11     ` Marc Zyngier
2020-11-20  9:50       ` Steven Price
2020-11-20  9:56         ` Marc Zyngier
2020-11-20  9:58           ` Steven Price
2020-12-04  8:25         ` Haibo Xu
2020-12-07 14:48           ` Steven Price
2020-12-07 15:27             ` Peter Maydell
2020-12-07 15:45               ` Steven Price
2020-12-07 16:05                 ` Marc Zyngier
2020-12-07 16:34                   ` Catalin Marinas
2020-12-07 19:03                     ` Marc Zyngier
2020-12-08 17:21                       ` Catalin Marinas
2020-12-08 18:21                         ` Marc Zyngier
2020-12-09 12:44                           ` Catalin Marinas
2020-12-09 13:25                             ` Marc Zyngier
2020-12-09 15:27                               ` Catalin Marinas
2020-12-09 18:27                                 ` Richard Henderson
2020-12-09 18:39                                   ` Catalin Marinas
2020-12-09 20:13                                     ` Richard Henderson
2020-12-09 20:20                                       ` Peter Maydell
2020-12-07 16:44                 ` Dr. David Alan Gilbert
2020-12-07 17:10                   ` Peter Maydell
2020-12-07 17:44                     ` Dr. David Alan Gilbert
2020-12-08 10:05                   ` Haibo Xu
2020-12-08  9:51             ` Haibo Xu
2020-12-08 10:01               ` Marc Zyngier
2020-12-08 10:10                 ` Haibo Xu
2020-12-16  7:31             ` Haibo Xu
2020-12-16 10:22               ` Steven Price
2020-12-17  1:47                 ` Haibo Xu
2020-11-23 12:16   ` Dr. David Alan Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).