[GIT PULL] KVM/arm64 updates for 6.1
Paolo Bonzini
pbonzini at redhat.com
Mon Oct 3 12:39:04 PDT 2022
Pulled, thanks!
Paolo
On Sun, Oct 2, 2022 at 2:42 PM Marc Zyngier <maz at 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
>
More information about the linux-arm-kernel
mailing list