Message ID | 20221002124219.3902661-1-maz@kernel.org |
---|---|
State | New |
Headers | show |
Series | [GIT,PULL] KVM/arm64 updates for 6.1 | expand |
Pulled, thanks! Paolo On Sun, Oct 2, 2022 at 2:42 PM Marc Zyngier <maz@kernel.org> wrote: > > Paolo, > > Please find below the rather small set of KVM/arm64 updates > for 6.1. This is mostly a set of fixes for existing features, > the most interesting one being Reiji's really good work tracking > an annoying set of bugs in our single-stepping implementation. > Also, I've included the changes making it possible to enable > the dirty-ring tracking on arm64. Full details in the tag. > > Note that this pull-request comes with a branch shared with the > arm64 tree, in order to avoid some bad conflicts due to the > ongoing repainting of all the system registers. > > Please pull, > > M. > > The following changes since commit b90cb1053190353cc30f0fef0ef1f378ccc063c5: > > Linux 6.0-rc3 (2022-08-28 15:05:29 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-6.1 > > for you to fetch changes up to b302ca52ba8235ff0e18c0fa1fa92b51784aef6a: > > Merge branch kvm-arm64/misc-6.1 into kvmarm-master/next (2022-10-01 10:19:36 +0100) > > ---------------------------------------------------------------- > KVM/arm64 updates for v6.1 > > - Fixes for single-stepping in the presence of an async > exception as well as the preservation of PSTATE.SS > > - Better handling of AArch32 ID registers on AArch64-only > systems > > - Fixes for the dirty-ring API, allowing it to work on > architectures with relaxed memory ordering > > - Advertise the new kvmarm mailing list > > - Various minor cleanups and spelling fixes > > ---------------------------------------------------------------- > Elliot Berman (1): > KVM: arm64: Ignore kvm-arm.mode if !is_hyp_mode_available() > > Gavin Shan (1): > KVM: arm64: vgic: Remove duplicate check in update_affinity_collection() > > Kristina Martsenko (3): > arm64: cache: Remove unused CTR_CACHE_MINLINE_MASK > arm64/sysreg: Standardise naming for ID_AA64MMFR1_EL1 fields > arm64/sysreg: Convert ID_AA64MMFR1_EL1 to automatic generation > > Marc Zyngier (12): > Merge branch kvm-arm64/aarch32-raz-idregs into kvmarm-master/next > Merge remote-tracking branch 'arm64/for-next/sysreg' into kvmarm-master/next > Merge branch kvm-arm64/single-step-async-exception into kvmarm-master/next > KVM: Use acquire/release semantics when accessing dirty ring GFN state > KVM: Add KVM_CAP_DIRTY_LOG_RING_ACQ_REL capability and config option > KVM: x86: Select CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL > KVM: Document weakly ordered architecture requirements for dirty ring > KVM: selftests: dirty-log: Upgrade flag accesses to acquire/release semantics > KVM: selftests: dirty-log: Use KVM_CAP_DIRTY_LOG_RING_ACQ_REL if available > KVM: arm64: Advertise new kvmarm mailing list > Merge branch kvm-arm64/dirty-log-ordered into kvmarm-master/next > Merge branch kvm-arm64/misc-6.1 into kvmarm-master/next > > Mark Brown (31): > arm64/sysreg: Remove stray SMIDR_EL1 defines > arm64/sysreg: Describe ID_AA64SMFR0_EL1.SMEVer as an enumeration > arm64/sysreg: Add _EL1 into ID_AA64MMFR0_EL1 definition names > arm64/sysreg: Add _EL1 into ID_AA64MMFR2_EL1 definition names > arm64/sysreg: Add _EL1 into ID_AA64PFR0_EL1 definition names > arm64/sysreg: Add _EL1 into ID_AA64PFR1_EL1 constant names > arm64/sysreg: Standardise naming of ID_AA64MMFR0_EL1.BigEnd > arm64/sysreg: Standardise naming of ID_AA64MMFR0_EL1.ASIDBits > arm64/sysreg: Standardise naming for ID_AA64MMFR2_EL1.VARange > arm64/sysreg: Standardise naming for ID_AA64MMFR2_EL1.CnP > arm64/sysreg: Standardise naming for ID_AA64PFR0_EL1 constants > arm64/sysreg: Standardise naming for ID_AA64PFR0_EL1.AdvSIMD constants > arm64/sysreg: Standardise naming for SSBS feature enumeration > arm64/sysreg: Standardise naming for MTE feature enumeration > arm64/sysreg: Standardise naming of ID_AA64PFR1_EL1 fractional version fields > arm64/sysreg: Standardise naming of ID_AA64PFR1_EL1 BTI enumeration > arm64/sysreg: Standardise naming of ID_AA64PFR1_EL1 SME enumeration > arm64/sysreg: Convert HCRX_EL2 to automatic generation > arm64/sysreg: Convert ID_AA64MMFR0_EL1 to automatic generation > arm64/sysreg: Convert ID_AA64MMFR2_EL1 to automatic generation > arm64/sysreg: Convert ID_AA64PFR0_EL1 to automatic generation > arm64/sysreg: Convert ID_AA64PFR1_EL1 to automatic generation > arm64/sysreg: Convert TIPDR_EL1 to automatic generation > arm64/sysreg: Convert SCXTNUM_EL1 to automatic generation > arm64/sysreg: Add defintion for ALLINT > arm64/sysreg: Align field names in ID_AA64DFR0_EL1 with architecture > arm64/sysreg: Add _EL1 into ID_AA64DFR0_EL1 definition names > arm64/sysreg: Use feature numbering for PMU and SPE revisions > arm64/sysreg: Convert ID_AA64FDR0_EL1 to automatic generation > arm64/sysreg: Convert ID_AA64DFR1_EL1 to automatic generation > arm64/sysreg: Convert ID_AA64AFRn_EL1 to automatic generation > > Oliver Upton (8): > KVM: arm64: Use visibility hook to treat ID regs as RAZ > KVM: arm64: Remove internal accessor helpers for id regs > KVM: arm64: Drop raz parameter from read_id_reg() > KVM: arm64: Spin off helper for calling visibility hook > KVM: arm64: Add a visibility bit to ignore user writes > KVM: arm64: Treat 32bit ID registers as RAZ/WI on 64bit-only system > KVM: selftests: Add test for AArch32 ID registers > KVM: selftests: Update top-of-file comment in psci_test > > Reiji Watanabe (4): > KVM: arm64: Preserve PSTATE.SS for the guest while single-step is enabled > KVM: arm64: Clear PSTATE.SS when the Software Step state was Active-pending > KVM: arm64: selftests: Refactor debug-exceptions to make it amenable to new test cases > KVM: arm64: selftests: Add a test case for KVM_GUESTDBG_SINGLESTEP > > Wei-Lin Chang (1): > KVM: arm64: Fix comment typo in nvhe/switch.c > > Documentation/virt/kvm/api.rst | 17 +- > MAINTAINERS | 3 +- > arch/arm64/include/asm/assembler.h | 10 +- > arch/arm64/include/asm/cache.h | 4 - > arch/arm64/include/asm/cpufeature.h | 66 +-- > arch/arm64/include/asm/el2_setup.h | 18 +- > arch/arm64/include/asm/hw_breakpoint.h | 4 +- > arch/arm64/include/asm/kvm_host.h | 4 + > arch/arm64/include/asm/kvm_pgtable.h | 6 +- > arch/arm64/include/asm/sysreg.h | 211 ++-------- > arch/arm64/kernel/cpufeature.c | 238 +++++------ > arch/arm64/kernel/debug-monitors.c | 2 +- > arch/arm64/kernel/head.S | 10 +- > arch/arm64/kernel/hyp-stub.S | 8 +- > arch/arm64/kernel/idreg-override.c | 10 +- > arch/arm64/kernel/perf_event.c | 8 +- > arch/arm64/kernel/proton-pack.c | 4 +- > arch/arm64/kvm/arm.c | 15 +- > arch/arm64/kvm/debug.c | 38 +- > arch/arm64/kvm/guest.c | 1 + > arch/arm64/kvm/handle_exit.c | 8 +- > arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 60 +-- > arch/arm64/kvm/hyp/nvhe/pkvm.c | 38 +- > arch/arm64/kvm/hyp/nvhe/switch.c | 2 +- > arch/arm64/kvm/hyp/nvhe/sys_regs.c | 10 +- > arch/arm64/kvm/hyp/pgtable.c | 2 +- > arch/arm64/kvm/pmu-emul.c | 16 +- > arch/arm64/kvm/reset.c | 12 +- > arch/arm64/kvm/sys_regs.c | 198 +++++---- > arch/arm64/kvm/sys_regs.h | 24 +- > arch/arm64/kvm/vgic/vgic-its.c | 2 +- > arch/arm64/mm/context.c | 6 +- > arch/arm64/mm/init.c | 2 +- > arch/arm64/mm/mmu.c | 2 +- > arch/arm64/mm/proc.S | 4 +- > arch/arm64/tools/sysreg | 449 ++++++++++++++++++++- > arch/x86/kvm/Kconfig | 3 +- > drivers/firmware/efi/libstub/arm64-stub.c | 4 +- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 6 +- > drivers/irqchip/irq-gic-v4.c | 2 +- > include/uapi/linux/kvm.h | 1 + > tools/testing/selftests/kvm/.gitignore | 1 + > tools/testing/selftests/kvm/Makefile | 1 + > .../selftests/kvm/aarch64/aarch32_id_regs.c | 169 ++++++++ > .../selftests/kvm/aarch64/debug-exceptions.c | 149 ++++++- > tools/testing/selftests/kvm/aarch64/psci_test.c | 10 +- > tools/testing/selftests/kvm/dirty_log_test.c | 8 +- > tools/testing/selftests/kvm/lib/kvm_util.c | 5 +- > virt/kvm/Kconfig | 14 + > virt/kvm/dirty_ring.c | 4 +- > virt/kvm/kvm_main.c | 9 +- > 51 files changed, 1294 insertions(+), 604 deletions(-) > create mode 100644 tools/testing/selftests/kvm/aarch64/aarch32_id_regs.c >