This patch series enable userspace writable for below idregs: ID_AA64DFR0_EL1, ID_DFR0_EL1, ID_AA64PFR0_EL1, ID_AA64MMFR{0, 1, 2, 3}_EL1. It is based on v6.5-rc1 which contains infrastructure for writable idregs. A selftest is added to verify that KVM handles the writings from user space correctly. A relevant patch from Oliver is picked from [3]. --- * v4 -> v5 - Rebase on v6.4-rc1 which contains infrastructure for writable idregs. - Use guest ID registers values for the sake of emulation. - Added a selftest to verify idreg userspace writing. * v3 -> v4 - Rebase on v11 of writable idregs series at [2]. * v2 -> v3 - Rebase on v6 of writable idregs series. - Enable writable for ID_AA64PFR0_EL1 and ID_AA64MMFR{0, 1, 2}_EL1. * v1 -> v2 - Rebase on latest patch series [1] of enabling writable ID register. [1] https://lore.kernel.org/all/20230402183735.3011540-1-jingzhangos@xxxxxxxxxx [2] https://lore.kernel.org/all/20230602005118.2899664-1-jingzhangos@xxxxxxxxxx [3] https://lore.kernel.org/kvmarm/20230623205232.2837077-1-oliver.upton@xxxxxxxxx [v1] https://lore.kernel.org/all/20230326011950.405749-1-jingzhangos@xxxxxxxxxx [v2] https://lore.kernel.org/all/20230403003723.3199828-1-jingzhangos@xxxxxxxxxx [v3] https://lore.kernel.org/all/20230405172146.297208-1-jingzhangos@xxxxxxxxxx --- Jing Zhang (5): KVM: arm64: Use guest ID register values for the sake of emulation KVM: arm64: Enable writable for ID_AA64DFR0_EL1 and ID_DFR0_EL1 KVM: arm64: Enable writable for ID_AA64PFR0_EL1 KVM: arm64: Enable writable for ID_AA64MMFR{0, 1, 2, 3}_EL1 KVM: arm64: selftests: Test for setting ID register from usersapce Oliver Upton (1): KVM: arm64: Reject attempts to set invalid debug arch version arch/arm64/kvm/sys_regs.c | 62 +++++-- tools/testing/selftests/kvm/Makefile | 1 + .../selftests/kvm/aarch64/set_id_regs.c | 163 ++++++++++++++++++ 3 files changed, 213 insertions(+), 13 deletions(-) create mode 100644 tools/testing/selftests/kvm/aarch64/set_id_regs.c base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 -- 2.41.0.255.g8b1d071c50-goog