Linux KVM/arm64 development list
 help / color / mirror / Atom feed
From: Fuad Tabba <tabba@google.com>
To: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org
Cc: maz@kernel.org, oliver.upton@linux.dev, james.clark@linaro.org,
	 will@kernel.org, joey.gouly@arm.com, suzuki.poulose@arm.com,
	 yuzenghui@huawei.com, catalin.marinas@arm.com,
	broonie@kernel.org,  qperret@google.com,
	kristina.martsenko@arm.com, tabba@google.com
Subject: [PATCH v5 00/17] KVM: arm64: Rework guest VM fixed feature handling and trapping in pKVM
Date: Mon, 16 Dec 2024 10:50:40 +0000	[thread overview]
Message-ID: <20241216105057.579031-1-tabba@google.com> (raw)

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


             reply	other threads:[~2024-12-16 10:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-16 10:50 Fuad Tabba [this message]
2024-12-16 10:50 ` [PATCH v5 01/17] KVM: arm64: Consolidate allowed and restricted VM feature checks Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 02/17] KVM: arm64: Group setting traps for protected VMs by control register Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 03/17] KVM: arm64: Move checking protected vcpu features to a separate function Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 04/17] KVM: arm64: Remove KVM_ARM_VCPU_POWER_OFF from protected VMs allowed features in pKVM Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 05/17] KVM: arm64: Use KVM extension checks for allowed protected VM capabilities Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 06/17] KVM: arm64: Initialize feature id registers for protected VMs Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 07/17] KVM: arm64: Fix RAS trapping in pKVM " Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 08/17] KVM: arm64: Set protected VM traps based on its view of feature registers Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 09/17] KVM: arm64: Rework specifying restricted features for protected VMs Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 10/17] KVM: arm64: Remove fixed_config.h header Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 11/17] KVM: arm64: Remove redundant setting of HCR_EL2 trap bit Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 12/17] KVM: arm64: Calculate cptr_el2 traps on activating traps Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 13/17] KVM: arm64: Refactor kvm_reset_cptr_el2() Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 14/17] KVM: arm64: Fix the value of the CPTR_EL2 RES1 bitmask for nVHE Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 15/17] KVM: arm64: Remove PtrAuth guest vcpu flag Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 16/17] KVM: arm64: Convert the SVE guest vcpu flag to a vm flag Fuad Tabba
2024-12-16 10:50 ` [PATCH v5 17/17] KVM: arm64: Use kvm_vcpu_has_feature() directly for struct kvm Fuad Tabba
2024-12-20 15:22 ` [PATCH v5 00/17] KVM: arm64: Rework guest VM fixed feature handling and trapping in pKVM Marc Zyngier

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=20241216105057.579031-1-tabba@google.com \
    --to=tabba@google.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=james.clark@linaro.org \
    --cc=joey.gouly@arm.com \
    --cc=kristina.martsenko@arm.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=qperret@google.com \
    --cc=suzuki.poulose@arm.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.com \
    /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