[PATCH v5 00/17] KVM: arm64: Rework guest VM fixed feature handling and trapping in pKVM
Fuad Tabba
tabba at google.com
Mon Dec 16 02:50:40 PST 2024
Changes from v4:
- (Oliver) Add assertion in kvm_init_pvm_id_regs() that vm_table
lock is held.
- (Quentin) Carve out patches that fix RAS and that remove the
feature KVM_ARM_VCPU_POWER_OFF from original patches, for clarity.
- (Quentin) Add a patch that refactors existing code to use
kvm_vcpu_has_feature() instead of __vcpu_has_feature().
- (Quentin) Fixes to commit messages.
Other than added assertion, no functional changes between v4 and v5.
This patch series redoes how fixed features for protected guests
are specified in pKVM, as well as how trapping is handled based
on the features available for the VM. It also fixes a couple of
existing bugs in the process. Please refer to v4 for context [1].
This series is based on kvmarm/next (60ad25e14ab5), since it
requires the patches from the series that fixes initialization of
trap register values in pKVM [2].
Cheers,
/fuad
[1] https://lore.kernel.org/all/20241202154742.3611749-1-tabba@google.com/
[2] https://lore.kernel.org/all/20241018074833.2563674-1-tabba@google.com/
Fuad Tabba (17):
KVM: arm64: Consolidate allowed and restricted VM feature checks
KVM: arm64: Group setting traps for protected VMs by control register
KVM: arm64: Move checking protected vcpu features to a separate
function
KVM: arm64: Remove KVM_ARM_VCPU_POWER_OFF from protected VMs allowed
features in pKVM
KVM: arm64: Use KVM extension checks for allowed protected VM
capabilities
KVM: arm64: Initialize feature id registers for protected VMs
KVM: arm64: Fix RAS trapping in pKVM for protected VMs
KVM: arm64: Set protected VM traps based on its view of feature
registers
KVM: arm64: Rework specifying restricted features for protected VMs
KVM: arm64: Remove fixed_config.h header
KVM: arm64: Remove redundant setting of HCR_EL2 trap bit
KVM: arm64: Calculate cptr_el2 traps on activating traps
KVM: arm64: Refactor kvm_reset_cptr_el2()
KVM: arm64: Fix the value of the CPTR_EL2 RES1 bitmask for nVHE
KVM: arm64: Remove PtrAuth guest vcpu flag
KVM: arm64: Convert the SVE guest vcpu flag to a vm flag
KVM: arm64: Use kvm_vcpu_has_feature() directly for struct kvm
arch/arm64/include/asm/kvm_arm.h | 2 +-
arch/arm64/include/asm/kvm_emulate.h | 29 +-
arch/arm64/include/asm/kvm_host.h | 25 +-
arch/arm64/include/asm/kvm_pkvm.h | 25 ++
arch/arm64/kvm/arm.c | 30 +-
.../arm64/kvm/hyp/include/nvhe/fixed_config.h | 223 ----------
arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 7 +
arch/arm64/kvm/hyp/nvhe/pkvm.c | 341 ++++++---------
arch/arm64/kvm/hyp/nvhe/setup.c | 1 -
arch/arm64/kvm/hyp/nvhe/switch.c | 52 ++-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 404 ++++++++++--------
arch/arm64/kvm/nested.c | 8 +-
arch/arm64/kvm/reset.c | 6 +-
13 files changed, 446 insertions(+), 707 deletions(-)
delete mode 100644 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h
base-commit: 60ad25e14ab5a4e56c8bf7f7d6846eacb9cd53df
--
2.47.1.613.gc27f4b7a9f-goog
More information about the linux-arm-kernel
mailing list