From: Andrew Scull <ascull@google.com>
To: kvmarm@lists.cs.columbia.edu
Cc: kernel-team@android.com, maz@kernel.org, catalin.marinas@arm.com,
will@kernel.org, Dave.Martin@arm.com
Subject: [PATCH 00/10] FPSIMD restore bypass and protecting
Date: Thu, 4 Mar 2021 11:54:43 +0000 [thread overview]
Message-ID: <20210304115454.3597879-1-ascull@google.com> (raw)
This series build towards protecting of FPSIMD state in protected KVM.
Most of the series is refactoring to create separation between host and
hyp for when that is needed.
There was the need to track where a vcpu last loaded its FPSIMD state so
I've also made use of this to avoid needless reloading of vcpu FPSIMD
state when that's possible. I don't know if this makes any performance
difference and don't know what a meaningful benchmark would be to
measure against so help and advice on this front would be appreciated.
The last patch in the series is concerned with the protecting of a
protected VM's FPSIMD state. It will depend on knowing which vcpus are
protected and having a stage 2 over the host but demonstrates the
trapping and lazy switching that I had in mind.
The series has, so far, only been lightly tested on qemu with paranoia
running on the host and in the vcpu.
It applies atop 5.12-rc.
This is similar, but much evolved, version of a series sent out last
year:
https://lore.kernel.org/r/20200713210505.2959828-1-ascull@google.com/
Andrew Scull (10):
KVM: arm64: Leave KVM_ARM64_DEBUG_DIRTY updates to the host
KVM: arm64: Synchronize vcpu FPSIMD in the host
KVM: arm64: Unmap host task thread flags from hyp
KVM: arm64: Support smp_processor_id() in nVHE hyp
KVM: arm64: Track where vcpu FP state was last loaded
KVM: arm64: Avoid needlessly reloading guest FP state
KVM: arm64: Separate host and hyp vcpu FP flags
KVM: arm64: Pass the arch run struct explicitly
KVM: arm64: Use hyp-private run struct in protected mode
RFC: KVM: arm64: Manage FPSIMD state at EL2 for protected vCPUs
arch/arm64/include/asm/fpsimd.h | 1 +
arch/arm64/include/asm/kvm_host.h | 46 +++++++---
arch/arm64/include/asm/kvm_hyp.h | 1 +
arch/arm64/kernel/fpsimd.c | 11 ++-
arch/arm64/kvm/arm.c | 8 +-
arch/arm64/kvm/debug.c | 2 +
arch/arm64/kvm/fpsimd.c | 69 +++++++++++----
arch/arm64/kvm/hyp/include/hyp/debug-sr.h | 2 -
arch/arm64/kvm/hyp/include/hyp/switch.h | 57 ++++++------
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 24 ++++++
arch/arm64/kvm/hyp/nvhe/hyp-smp.c | 2 +
arch/arm64/kvm/hyp/nvhe/switch.c | 100 ++++++++++++++++++----
arch/arm64/kvm/hyp/vhe/switch.c | 8 +-
13 files changed, 249 insertions(+), 82 deletions(-)
--
2.30.1.766.gb4fecdf3b7-goog
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
next reply other threads:[~2021-03-04 11:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-04 11:54 Andrew Scull [this message]
2021-03-04 11:54 ` [PATCH 01/10] KVM: arm64: Leave KVM_ARM64_DEBUG_DIRTY updates to the host Andrew Scull
2021-03-04 11:54 ` [PATCH 02/10] KVM: arm64: Synchronize vcpu FPSIMD in " Andrew Scull
2021-03-04 11:54 ` [PATCH 03/10] KVM: arm64: Unmap host task thread flags from hyp Andrew Scull
2021-03-04 11:54 ` [PATCH 04/10] KVM: arm64: Support smp_processor_id() in nVHE hyp Andrew Scull
2021-03-11 10:35 ` Quentin Perret
2021-03-12 11:20 ` Andrew Scull
2021-03-12 11:27 ` Andrew Scull
2021-03-04 11:54 ` [PATCH 05/10] KVM: arm64: Track where vcpu FP state was last loaded Andrew Scull
2021-03-11 10:37 ` Quentin Perret
2021-03-11 10:40 ` Quentin Perret
2021-03-04 11:54 ` [PATCH 06/10] KVM: arm64: Avoid needlessly reloading guest FP state Andrew Scull
2021-03-04 11:54 ` [PATCH 07/10] KVM: arm64: Separate host and hyp vcpu FP flags Andrew Scull
2021-03-04 11:54 ` [PATCH 08/10] KVM: arm64: Pass the arch run struct explicitly Andrew Scull
2021-03-04 11:54 ` [PATCH 09/10] KVM: arm64: Use hyp-private run struct in protected mode Andrew Scull
2021-03-04 11:54 ` [PATCH 10/10] RFC: KVM: arm64: Manage FPSIMD state at EL2 for protected vCPUs Andrew Scull
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210304115454.3597879-1-ascull@google.com \
--to=ascull@google.com \
--cc=Dave.Martin@arm.com \
--cc=catalin.marinas@arm.com \
--cc=kernel-team@android.com \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=maz@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox