From: Marc Zyngier <maz@kernel.org>
To: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org
Cc: James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Oliver Upton <oliver.upton@linux.dev>,
Zenghui Yu <yuzenghui@huawei.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
Mark Brown <broonie@kernel.org>
Subject: [PATCH v4 00/26] KVM/arm64: VM configuration enforcement
Date: Wed, 14 Feb 2024 13:18:01 +0000 [thread overview]
Message-ID: <20240214131827.2856277-1-maz@kernel.org> (raw)
This is the fourth version of this configurationm enforcement series
after additional reviewing from Suzuki and Oliver. Many thanks to
both.
I think I have taken most of the feedback into account, but please
shout if I have ignored something.
* From v3: [3]
- Fixed copy-paste issue while testing for the PAC flags
- Added Suzuki's RB on patch #2
* From v2: [2]
- Fix totally broken handling of negative features by delegating the
work that requires a functionnal brain to other people
- Fix handling of HCR_ENSCXT as RES0 instead of RES1 (and its
consequences...)
- Add handling of VTTBR_EL2.CNP being RES0
- Add a snapshot of all RES0/RES1 fields so that we can catch them
being changed behind our backs
- Various cleanups
* From v1: [1]
- Fix embarrassing crash with FEAT_MOPS
- Better error handling in the FGT code
- Added/Fixed comments
- Simplified the __vcpu_sys_reg() macro
- Fixed FEAT_PIR handling
- Folded in Oliver's PMU rework
[1] https://lore.kernel.org/all/20240122201852.262057-1-maz@kernel.org
[2] https://lore.kernel.org/all/20240130204533.693853-1-maz@kernel.org
[3] https://lore.kernel.org/all/20240205103431.1104133-1-maz@kernel.org
Marc Zyngier (26):
arm64: sysreg: Add missing ID_AA64ISAR[13]_EL1 fields and variants
KVM: arm64: Add feature checking helpers
KVM: arm64: nv: Add sanitising to VNCR-backed sysregs
KVM: arm64: nv: Add sanitising to EL2 configuration registers
KVM: arm64: nv: Add sanitising to VNCR-backed FGT sysregs
KVM: arm64: nv: Add sanitising to VNCR-backed HCRX_EL2
KVM: arm64: nv: Drop sanitised_sys_reg() helper
KVM: arm64: Unify HDFG[WR]TR_GROUP FGT identifiers
KVM: arm64: nv: Correctly handle negative polarity FGTs
KVM: arm64: nv: Turn encoding ranges into discrete XArray stores
KVM: arm64: Drop the requirement for XARRAY_MULTI
KVM: arm64: nv: Move system instructions to their own sys_reg_desc
array
KVM: arm64: Always populate the trap configuration xarray
KVM: arm64: Register AArch64 system register entries with the sysreg
xarray
KVM: arm64: Use the xarray as the primary sysreg/sysinsn walker
KVM: arm64: Rename __check_nv_sr_forward() to triage_sysreg_trap()
KVM: arm64: Add Fine-Grained UNDEF tracking information
KVM: arm64: Propagate and handle Fine-Grained UNDEF bits
KVM: arm64: Move existing feature disabling over to FGU infrastructure
KVM: arm64: Streamline save/restore of HFG[RW]TR_EL2
KVM: arm64: Make TLBI OS/Range UNDEF if not advertised to the guest
KVM: arm64: Make PIR{,E0}_EL1 UNDEF if S1PIE is not advertised to the
guest
KVM: arm64: Make AMU sysreg UNDEF if FEAT_AMU is not advertised to the
guest
KVM: arm64: Make FEAT_MOPS UNDEF if not advertised to the guest
KVM: arm64: Snapshot all non-zero RES0/RES1 sysreg fields for later
checking
KVM: arm64: Add debugfs file for guest's ID registers
arch/arm64/include/asm/kvm_arm.h | 4 +-
arch/arm64/include/asm/kvm_host.h | 98 +++++++-
arch/arm64/include/asm/kvm_nested.h | 1 -
arch/arm64/kvm/Kconfig | 1 -
arch/arm64/kvm/arm.c | 7 +
arch/arm64/kvm/check-res-bits.h | 121 ++++++++++
arch/arm64/kvm/emulate-nested.c | 231 +++++++++++++-----
arch/arm64/kvm/hyp/include/hyp/switch.h | 130 +++++-----
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 24 +-
arch/arm64/kvm/nested.c | 267 ++++++++++++++++++++-
arch/arm64/kvm/pmu-emul.c | 11 +-
arch/arm64/kvm/sys_regs.c | 238 +++++++++++++++---
arch/arm64/kvm/sys_regs.h | 2 +
arch/arm64/tools/sysreg | 8 +-
include/kvm/arm_pmu.h | 11 -
15 files changed, 973 insertions(+), 181 deletions(-)
create mode 100644 arch/arm64/kvm/check-res-bits.h
--
2.39.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2024-02-14 13:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-14 13:18 Marc Zyngier [this message]
2024-02-14 13:18 ` [PATCH v4 01/26] arm64: sysreg: Add missing ID_AA64ISAR[13]_EL1 fields and variants Marc Zyngier
2024-02-15 18:06 ` Catalin Marinas
2024-02-14 13:18 ` [PATCH v4 02/26] KVM: arm64: Add feature checking helpers Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 03/26] KVM: arm64: nv: Add sanitising to VNCR-backed sysregs Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 04/26] KVM: arm64: nv: Add sanitising to EL2 configuration registers Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 05/26] KVM: arm64: nv: Add sanitising to VNCR-backed FGT sysregs Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 06/26] KVM: arm64: nv: Add sanitising to VNCR-backed HCRX_EL2 Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 07/26] KVM: arm64: nv: Drop sanitised_sys_reg() helper Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 08/26] KVM: arm64: Unify HDFG[WR]TR_GROUP FGT identifiers Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 09/26] KVM: arm64: nv: Correctly handle negative polarity FGTs Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 10/26] KVM: arm64: nv: Turn encoding ranges into discrete XArray stores Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 11/26] KVM: arm64: Drop the requirement for XARRAY_MULTI Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 12/26] KVM: arm64: nv: Move system instructions to their own sys_reg_desc array Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 13/26] KVM: arm64: Always populate the trap configuration xarray Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 14/26] KVM: arm64: Register AArch64 system register entries with the sysreg xarray Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 15/26] KVM: arm64: Use the xarray as the primary sysreg/sysinsn walker Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 16/26] KVM: arm64: Rename __check_nv_sr_forward() to triage_sysreg_trap() Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 17/26] KVM: arm64: Add Fine-Grained UNDEF tracking information Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 18/26] KVM: arm64: Propagate and handle Fine-Grained UNDEF bits Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 19/26] KVM: arm64: Move existing feature disabling over to FGU infrastructure Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 20/26] KVM: arm64: Streamline save/restore of HFG[RW]TR_EL2 Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 21/26] KVM: arm64: Make TLBI OS/Range UNDEF if not advertised to the guest Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 22/26] KVM: arm64: Make PIR{,E0}_EL1 UNDEF if S1PIE is " Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 23/26] KVM: arm64: Make AMU sysreg UNDEF if FEAT_AMU " Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 24/26] KVM: arm64: Make FEAT_MOPS UNDEF if " Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 25/26] KVM: arm64: Snapshot all non-zero RES0/RES1 sysreg fields for later checking Marc Zyngier
2024-02-14 13:18 ` [PATCH v4 26/26] KVM: arm64: Add debugfs file for guest's ID registers Marc Zyngier
2024-02-15 21:03 ` [PATCH v4 00/26] KVM/arm64: VM configuration enforcement Oliver Upton
2024-02-19 17:34 ` Oliver Upton
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=20240214131827.2856277-1-maz@kernel.org \
--to=maz@kernel.org \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=james.morse@arm.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=oliver.upton@linux.dev \
--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;
as well as URLs for NNTP newsgroup(s).