[GIT PULL] KVM/arm64 updates for 6.1
Marc Zyngier
maz at kernel.org
Sun Oct 2 05:42:19 PDT 2022
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