Patch#1 KVM: arm64: Allow userspace to get the writable masks for feature ID registers Patch#2 KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS Patch#3 KVM: arm64: Use guest ID register values for the sake of emulation Patch#4 KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version Patch#5 KVM: arm64: Reject attempts to set invalid debug arch version Patch#6 KVM: arm64: Bump up the default KVM sanitised debug version to v8p8 Patch#7 KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1 Patch#8 KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1 Patch#9 KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1 Patch#10 KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1 Patch#11 KVM: arm64: Document vCPU feature selection UAPIs Reference: https://lore.kernel.org/all/20231003230408.3405722-1-oliver.upton@linux.dev/ selftest相关未合入 Patch#12 KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable from userspace Reference: https://lore.kernel.org/all/20240816132819.34316-1-shameerali.kolothum.thodi... 单patch合入 Patch#13 KVM: arm64: Disable MPAM visibility by default and ignore VMM writes Reference: https://lore.kernel.org/all/20241030160317.2528209-7-joey.gouly@arm.com/ 单patch合入 Patch#14 KVM: arm64: Rename is_id_reg() to imply VM scope Patch#15 KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs() Patch#16 KVM: arm64: Only reset vCPU-scoped feature ID regs once Reference: https://lore.kernel.org/all/20240502233529.1958459-1-oliver.upton@linux.dev/ 后面patch基于此series, 只合入影响后面patch的部分 Patch#17 KVM: arm64: Use read-only helper for reading VM ID registers Patch#18 KVM: arm64: Add helper for writing ID regs Patch#19 KVM: arm64: Treat CTR_EL0 as a VM feature ID register Patch#20 KVM: arm64: show writable masks for feature registers Patch#21 KVM: arm64: rename functions for invariant sys regs Reference: https://lore.kernel.org/all/20240619174036.483943-1-oliver.upton@linux.dev/ nv及debug相关未合入 Patch#22 KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from userspace Reference: https://lore.kernel.org/all/20241022073943.35764-1-shameerali.kolothum.thodi... 单patch合入 Patch#23 KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX Reference: https://lore.kernel.org/all/E1s2AxF-00AWLv-03@rmk-PC.armlinux.org.uk/ 单patch合入 Patch#24 KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace Reference: https://lore.kernel.org/linux-arm-kernel/20250911114621.3724469-1-yangjinqia... selftest相关未合入 Patch#25 KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden Reference: https://lore.kernel.org/all/20241203190236.505759-1-maz@kernel.org/ 单patch合入 Patch#26 KVM: arm64: Sanitise ID_AA64MMFR3_EL1 Reference: https://lore.kernel.org/all/20240822151113.1479789-11-joey.gouly@arm.com/ 后面patch基于此series的此patch, 只合入此patch Patch#27 KVM: arm64: Expose S1PIE to guests Reference: https://lore.kernel.org/all/20241005-kvm-arm64-fix-s1pie-v1-1-5901f02de749@k... 单patch合入 Patch#28 KVM: arm64: Make AA64PFR1_EL1.NMI writeable 此patch未合入主线, 因为vNMI未合入主线, 仅openeuler需要。 Patch#29 KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change 此patch用于KABI屏蔽, 由Patch#19引入, 在struct kvm_arch添加了ctr_el0。 James Morse (1): KVM: arm64: Disable MPAM visibility by default and ignore VMM writes Jing Zhang (5): KVM: arm64: Allow userspace to get the writable masks for feature ID registers KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS KVM: arm64: Use guest ID register values for the sake of emulation KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1 KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1 Jinqian Yang (2): KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace KVM: arm64: Make AA64PFR1_EL1.NMI writeable Joey Gouly (1): KVM: arm64: Sanitise ID_AA64MMFR3_EL1 Marc Zyngier (1): KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden Mark Brown (1): KVM: arm64: Expose S1PIE to guests Oliver Upton (11): KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version KVM: arm64: Reject attempts to set invalid debug arch version KVM: arm64: Bump up the default KVM sanitised debug version to v8p8 KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1 KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1 KVM: arm64: Document vCPU feature selection UAPIs KVM: arm64: Rename is_id_reg() to imply VM scope KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs() KVM: arm64: Only reset vCPU-scoped feature ID regs once KVM: arm64: Use read-only helper for reading VM ID registers KVM: arm64: Add helper for writing ID regs Russell King (1): KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX Sebastian Ott (3): KVM: arm64: Treat CTR_EL0 as a VM feature ID register KVM: arm64: show writable masks for feature registers KVM: arm64: rename functions for invariant sys regs Shameer Kolothum (2): KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable from userspace KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from userspace yangjinqian (1): KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change Documentation/virt/kvm/api.rst | 52 +++ Documentation/virt/kvm/arm/index.rst | 1 + Documentation/virt/kvm/arm/vcpu-features.rst | 48 +++ arch/arm64/include/asm/kvm_emulate.h | 3 +- arch/arm64/include/asm/kvm_host.h | 23 ++ arch/arm64/include/uapi/asm/kvm.h | 32 ++ arch/arm64/kvm/arm.c | 15 +- arch/arm64/kvm/pmu-emul.c | 2 +- arch/arm64/kvm/sys_regs.c | 359 +++++++++++++++---- include/uapi/linux/kvm.h | 2 + 10 files changed, 451 insertions(+), 86 deletions(-) create mode 100644 Documentation/virt/kvm/arm/vcpu-features.rst -- 2.33.0