KVM/arm64: VM configuration enforcement
Status from this message: Applied to kvmarm/next, thanks!
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest26 patches 3 repliesApplied
- v326 patches 7 repliesSuperseded
- v225 patches 22 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 25 patches | 31 replies | Superseded |
Patches in v4 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/26 | arm64: sysreg: Add missing ID_AA64ISAR[13]_EL1 fields and variantsarch/ | +7 | 1 reply | |
| 2/26 | KVM: arm64: Add feature checking helpersarch/ arch/ arch/ +1 more | +52 | 0 replies | |
| 3/26 | KVM: arm64: nv: Add sanitising to VNCR-backed sysregsarch/ arch/ arch/ | +62 | 0 replies | |
| 4/26 | KVM: arm64: nv: Add sanitising to EL2 configuration registersarch/ | +57 | 0 replies | |
| 5/26 | KVM: arm64: nv: Add sanitising to VNCR-backed FGT sysregsarch/ | +128 | 0 replies | |
| 6/26 | KVM: arm64: nv: Add sanitising to VNCR-backed HCRX_EL2arch/ | +42 | 0 replies | |
| 7/26 | KVM: arm64: nv: Drop sanitised_sys_reg() helperarch/ | +7 | 0 replies | |
| 8/26 | KVM: arm64: Unify HDFG[WR]TR_GROUP FGT identifiersarch/ | +1 | 0 replies | |
| 9/26 | KVM: arm64: nv: Correctly handle negative polarity FGTsarch/ | +56 | 0 replies | |
| 10/26 | KVM: arm64: nv: Turn encoding ranges into discrete XArray storesarch/ | +36 | 0 replies | |
| 11/26 | KVM: arm64: Drop the requirement for XARRAY_MULTIarch/ | +0 | 0 replies | |
| 12/26 | KVM: arm64: nv: Move system instructions to their own sys_reg_desc arrayarch/ | +44 | 0 replies | |
| 13/26 | KVM: arm64: Always populate the trap configuration xarrayarch/ | +1 | 0 replies | |
| 14/26 | KVM: arm64: Register AArch64 system register entries with the sysreg xarrayarch/ arch/ arch/ | +50 | 0 replies | |
| 15/26 | KVM: arm64: Use the xarray as the primary sysreg/sysinsn walkerarch/ arch/ arch/ | +50 | 0 replies | |
| 16/26 | KVM: arm64: Rename __check_nv_sr_forward() to triage_sysreg_trap()arch/ arch/ arch/ +1 more | +4 | 0 replies | |
| 17/26 | KVM: arm64: Add Fine-Grained UNDEF tracking informationarch/ arch/ | +21 | 0 replies | |
| 18/26 | KVM: arm64: Propagate and handle Fine-Grained UNDEF bitsarch/ arch/ | +72 | 0 replies | |
| 19/26 | KVM: arm64: Move existing feature disabling over to FGU infrastructurearch/ arch/ arch/ +1 more | +36 | 0 replies | |
| 20/26 | KVM: arm64: Streamline save/restore of HFG[RW]TR_EL2arch/ | +9 | 0 replies | |
| 21/26 | KVM: arm64: Make TLBI OS/Range UNDEF if not advertised to the guestarch/ | +34 | 0 replies | |
| 22/26 | KVM: arm64: Make PIR{,E0}_EL1 UNDEF if S1PIE is not advertised to the guestarch/ arch/ | +25 | 0 replies | |
| 23/26 | KVM: arm64: Make AMU sysreg UNDEF if FEAT_AMU is not advertised to the guestarch/ | +4 | 0 replies | |
| 24/26 | KVM: arm64: Make FEAT_MOPS UNDEF if not advertised to the guestarch/ arch/ arch/ +1 more | +10 | 0 replies | |
| 25/26 | KVM: arm64: Snapshot all non-zero RES0/RES1 sysreg fields for later checkingarch/ arch/ | +124 | 0 replies | |
| 26/26 | KVM: arm64: Add debugfs file for guest's ID registersarch/ arch/ | +84 | 0 replies |
Reviews trailers per patch
20 of 26 patches have a Reviewed-by or Acked-by.
| Patch | Mark Brown | Suzuki K Poulose | Oliver Upton | Joey Gouly | Catalin Marinas |
|---|---|---|---|---|---|
| 1/26 | R-b | A-b | |||
| 2/26 | R-b | Co-developed--by | |||
| 3/26 | R-b | ||||
| 4/26 | |||||
| 5/26 | R-b | ||||
| 6/26 | |||||
| 7/26 | R-b | ||||
| 8/26 | R-b | ||||
| 9/26 | |||||
| 10/26 | R-b | ||||
| 11/26 | R-b | ||||
| 12/26 | R-b | ||||
| 13/26 | R-b | ||||
| 14/26 | R-b | ||||
| 15/26 | R-b | ||||
| 16/26 | R-b | ||||
| 17/26 | |||||
| 18/26 | R-b | ||||
| 19/26 | R-b | ||||
| 20/26 | R-b | ||||
| 21/26 | R-b | ||||
| 22/26 | R-b | ||||
| 23/26 | R-b | ||||
| 24/26 | R-b | ||||
| 25/26 | |||||
| 26/26 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [PATCH v4 00/26] KVM/arm64: VM configuration enforcement
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/[email protected]
[2] https://lore.kernel.org/all/[email protected]
[3] https://lore.kernel.org/all/[email protected]
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
Signature · 1 line
2.39.2