In AArch64, guest will read the same values of the ID regsiters with host. Both of them read the values from arm64_ftr_regs. This patch series add support to emulate and configure ID registers so that we can control the value of ID registers that guest read. v2 -> v3: - remove check_user and split some set_user for some ID registers - check the consistency of ID registers of vCPUS - add more doc for the limits v1 -> v2: - save the ID registers in sysreg file instead of a new struct - apply a checker before setting the value to the register - add doc for new KVM_CAP_ARM_CPU_FEATURE Peng Liang (12): arm64: Add a helper function to traverse arm64_ftr_regs arm64: Introduce check_features kvm: arm64: Save ID registers to sys_regs file kvm: arm64: Make ID_AA64PFR0_EL1 configurable kvm: arm64: Make ID_AA64DFR0_EL1 configurable kvm: arm64: Make ID_AA64ISAR0_EL1 configurable kvm: arm64: Make ID_AA64ISAR1_EL1 configurable kvm: arm64: Make ID_DFR0_EL1 configurable kvm: arm64: Make MVFR1_EL1 configurable kvm: arm64: Make other ID registers configurable kvm: arm64: Check consistent of ID register kvm: arm64: add KVM_CAP_ARM_CPU_FEATURE extension Documentation/virt/kvm/api.rst | 36 ++++ arch/arm64/include/asm/cpufeature.h | 4 + arch/arm64/include/asm/kvm_coproc.h | 2 + arch/arm64/include/asm/kvm_host.h | 9 + arch/arm64/kernel/cpufeature.c | 36 ++++ arch/arm64/kvm/arm.c | 22 +++ arch/arm64/kvm/sys_regs.c | 272 ++++++++++++++++++++++++++-- include/uapi/linux/kvm.h | 1 + 8 files changed, 365 insertions(+), 17 deletions(-) -- 2.26.2