mbox series

[GIT,PULL] First batch of KVM changes for Linux 6.12

Message ID 20240915064621.5268-1-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] First batch of KVM changes for Linux 6.12 | expand

Pull-request

https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus-non-x86

Message

Paolo Bonzini Sept. 15, 2024, 6:46 a.m. UTC
Linus,

The following changes since commit da3ea35007d0af457a0afc87e84fddaebc4e0b63:

  Linux 6.11-rc7 (2024-09-08 14:50:28 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus-non-x86

for you to fetch changes up to 0cdcc99eeaedf2422c80d75760293fdbb476cec1:

  Merge tag 'kvm-riscv-6.12-1' of https://github.com/kvm-riscv/linux into HEAD (2024-09-15 02:43:17 -0400)

These are the non-x86 changes (mostly ARM, as is usually the case).
The generic and x86 changes will come later, in the meanwhile
here is what's ready in case it helps you intersecting the
travelling and pulling schedule.  There is a trivial conflict in
arch/arm64/include/asm/kvm_host.h with the arm64 tree.

I'll also send a revert for 6.11 in a few minutes.

Thanks,

Paolo

----------------------------------------------------------------
ARM:

* New Stage-2 page table dumper, reusing the main ptdump infrastructure

* FP8 support

* Nested virtualization now supports the address translation (FEAT_ATS1A)
  family of instructions

* Add selftest checks for a bunch of timer emulation corner cases

* Fix multiple cases where KVM/arm64 doesn't correctly handle the guest
  trying to use a GICv3 that wasn't advertised

* Remove REG_HIDDEN_USER from the sysreg infrastructure, making
  things little simpler

* Prevent MTE tags being restored by userspace if we are actively
  logging writes, as that's a recipe for disaster

* Correct the refcount on a page that is not considered for MTE tag
  copying (such as a device)

* When walking a page table to split block mappings, synchronize only
  at the end the walk rather than on every store

* Fix boundary check when transfering memory using FFA

* Fix pKVM TLB invalidation, only affecting currently out of tree
  code but worth addressing for peace of mind

LoongArch:

* Revert qspinlock to test-and-set simple lock on VM.

* Add Loongson Binary Translation extension support.

* Add PMU support for guest.

* Enable paravirt feature control from VMM.

* Implement function kvm_para_has_feature().

RISC-V:

* Fix sbiret init before forwarding to userspace

* Don't zero-out PMU snapshot area before freeing data

* Allow legacy PMU access from guest

* Fix to allow hpmcounter31 from the guest

----------------------------------------------------------------
Andrew Jones (1):
      RISC-V: KVM: Fix sbiret init before forwarding to userspace

Anup Patel (1):
      RISC-V: KVM: Don't zero-out PMU snapshot area before freeing data

Atish Patra (2):
      RISC-V: KVM: Allow legacy PMU access from guest
      RISC-V: KVM: Fix to allow hpmcounter31 from the guest

Bibo Mao (6):
      LoongArch: Revert qspinlock to test-and-set simple lock on VM
      LoongArch: KVM: Add VM feature detection function
      LoongArch: KVM: Add Binary Translation extension support
      LoongArch: KVM: Add vm migration support for LBT registers
      LoongArch: KVM: Enable paravirt feature control from VMM
      LoongArch: KVM: Implement function kvm_para_has_feature()

Colton Lewis (3):
      KVM: arm64: Move data barrier to end of split walk
      KVM: arm64: selftests: Ensure pending interrupts are handled in arch_timer test
      KVM: arm64: selftests: Add arch_timer_edge_cases selftest

Joey Gouly (1):
      KVM: arm64: Make kvm_at() take an OP_AT_*

Marc Zyngier (47):
      KVM: arm64: Move SVCR into the sysreg array
      KVM: arm64: Add predicate for FPMR support in a VM
      KVM: arm64: Move FPMR into the sysreg array
      KVM: arm64: Add save/restore support for FPMR
      KVM: arm64: Honor trap routing for FPMR
      KVM: arm64: Expose ID_AA64FPFR0_EL1 as a writable ID reg
      KVM: arm64: Enable FP8 support when available and configured
      KVM: arm64: Expose ID_AA64PFR2_EL1 to userspace and guests
      Merge branch kvm-arm64/tlbi-fixes-6.12 into kvmarm-master/next
      KVM: arm64: Move GICv3 trap configuration to kvm_calculate_traps()
      KVM: arm64: Force SRE traps when SRE access is not enabled
      KVM: arm64: Force GICv3 trap activation when no irqchip is configured on VHE
      KVM: arm64: Add helper for last ditch idreg adjustments
      KVM: arm64: Zero ID_AA64PFR0_EL1.GIC when no GICv3 is presented to the guest
      KVM: arm64: Add ICH_HCR_EL2 to the vcpu state
      KVM: arm64: Add trap routing information for ICH_HCR_EL2
      KVM: arm64: Honor guest requested traps in GICv3 emulation
      KVM: arm64: Make most GICv3 accesses UNDEF if they trap
      KVM: arm64: Unify UNDEF injection helpers
      KVM: arm64: Add selftest checking how the absence of GICv3 is handled
      arm64: Add missing APTable and TCR_ELx.HPD masks
      arm64: Add PAR_EL1 field description
      arm64: Add system register encoding for PSTATE.PAN
      arm64: Add ESR_ELx_FSC_ADDRSZ_L() helper
      KVM: arm64: nv: Enforce S2 alignment when contiguous bit is set
      KVM: arm64: nv: Turn upper_attr for S2 walk into the full descriptor
      KVM: arm64: nv: Honor absence of FEAT_PAN2
      KVM: arm64: nv: Add basic emulation of AT S1E{0,1}{R,W}
      KVM: arm64: nv: Add basic emulation of AT S1E1{R,W}P
      KVM: arm64: nv: Add basic emulation of AT S1E2{R,W}
      KVM: arm64: nv: Add emulation of AT S12E{0,1}{R,W}
      KVM: arm64: nv: Make ps_to_output_size() generally available
      KVM: arm64: nv: Add SW walker for AT S1 emulation
      KVM: arm64: nv: Sanitise SCTLR_EL1.EPAN according to VM configuration
      KVM: arm64: nv: Make AT+PAN instructions aware of FEAT_PAN3
      KVM: arm64: nv: Plumb handling of AT S1* traps from EL2
      KVM: arm64: nv: Add support for FEAT_ATS1A
      KVM: arm64: Simplify handling of CNTKCTL_EL12
      KVM: arm64: Simplify visibility handling of AArch32 SPSR_*
      KVM: arm64: Get rid of REG_HIDDEN_USER visibility qualifier
      Merge branch kvm-arm64/mmu-misc-6.12 into kvmarm-master/next
      Merge branch kvm-arm64/fpmr into kvmarm-master/next
      Merge branch kvm-arm64/vgic-sre-traps into kvmarm-master/next
      Merge branch kvm-arm64/selftests-6.12 into kvmarm-master/next
      Merge branch kvm-arm64/nv-at-pan into kvmarm-master/next
      Merge branch kvm-arm64/s2-ptdump into kvmarm-master/next
      Merge branch kvm-arm64/visibility-cleanups into kvmarm-master/next

Oliver Upton (1):
      KVM: arm64: selftests: Cope with lack of GICv3 in set_id_regs

Paolo Bonzini (3):
      Merge tag 'kvmarm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      Merge tag 'loongarch-kvm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
      Merge tag 'kvm-riscv-6.12-1' of https://github.com/kvm-riscv/linux into HEAD

Sean Christopherson (2):
      KVM: arm64: Release pfn, i.e. put page, if copying MTE tags hits ZONE_DEVICE
      KVM: arm64: Disallow copying MTE to guest memory while KVM is dirty logging

Sebastian Ene (5):
      KVM: arm64: Move pagetable definitions to common header
      arm64: ptdump: Expose the attribute parsing functionality
      arm64: ptdump: Use the ptdump description from a local context
      arm64: ptdump: Don't override the level when operating on the stage-2 tables
      KVM: arm64: Register ptdump with debugfs on guest creation

Snehal Koukuntla (1):
      KVM: arm64: Add memory length checks and remove inline in do_ffa_mem_xfer

Song Gao (1):
      LoongArch: KVM: Add PMU support for guest

Will Deacon (2):
      KVM: arm64: Invalidate EL1&0 TLB entries for all VMIDs in nvhe hyp init
      KVM: arm64: Ensure TLBI uses correct VMID after changing context

 arch/arm64/include/asm/esr.h                       |    5 +-
 arch/arm64/include/asm/kvm_arm.h                   |    1 +
 arch/arm64/include/asm/kvm_asm.h                   |    6 +-
 arch/arm64/include/asm/kvm_host.h                  |   22 +-
 arch/arm64/include/asm/kvm_mmu.h                   |    6 +
 arch/arm64/include/asm/kvm_nested.h                |   40 +-
 arch/arm64/include/asm/kvm_pgtable.h               |   42 +
 arch/arm64/include/asm/pgtable-hwdef.h             |    9 +
 arch/arm64/include/asm/ptdump.h                    |   43 +-
 arch/arm64/include/asm/sysreg.h                    |   22 +
 arch/arm64/kvm/Kconfig                             |   17 +
 arch/arm64/kvm/Makefile                            |    3 +-
 arch/arm64/kvm/arm.c                               |   15 +-
 arch/arm64/kvm/at.c                                | 1101 ++++++++++++++++++++
 arch/arm64/kvm/emulate-nested.c                    |   81 +-
 arch/arm64/kvm/fpsimd.c                            |    5 +-
 arch/arm64/kvm/guest.c                             |    6 +
 arch/arm64/kvm/hyp/include/hyp/fault.h             |    2 +-
 arch/arm64/kvm/hyp/include/hyp/switch.h            |    3 +
 arch/arm64/kvm/hyp/nvhe/ffa.c                      |   21 +-
 arch/arm64/kvm/hyp/nvhe/hyp-init.S                 |    2 +-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |    9 +
 arch/arm64/kvm/hyp/nvhe/switch.c                   |    9 +
 arch/arm64/kvm/hyp/nvhe/tlb.c                      |    6 +-
 arch/arm64/kvm/hyp/pgtable.c                       |   48 +-
 arch/arm64/kvm/hyp/vgic-v3-sr.c                    |   97 +-
 arch/arm64/kvm/hyp/vhe/switch.c                    |    3 +
 arch/arm64/kvm/nested.c                            |   55 +-
 arch/arm64/kvm/ptdump.c                            |  268 +++++
 arch/arm64/kvm/sys_regs.c                          |  384 ++++---
 arch/arm64/kvm/sys_regs.h                          |   23 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   12 +
 arch/arm64/kvm/vgic/vgic.c                         |   14 +-
 arch/arm64/kvm/vgic/vgic.h                         |    6 +-
 arch/arm64/mm/ptdump.c                             |   70 +-
 arch/loongarch/include/asm/Kbuild                  |    1 -
 arch/loongarch/include/asm/kvm_csr.h               |    6 +
 arch/loongarch/include/asm/kvm_host.h              |   37 +-
 arch/loongarch/include/asm/kvm_para.h              |   12 +
 arch/loongarch/include/asm/kvm_vcpu.h              |   11 +
 arch/loongarch/include/asm/loongarch.h             |   11 +-
 arch/loongarch/include/asm/paravirt.h              |    7 +
 arch/loongarch/include/asm/qspinlock.h             |   41 +
 arch/loongarch/include/uapi/asm/Kbuild             |    2 -
 arch/loongarch/include/uapi/asm/kvm.h              |   20 +
 arch/loongarch/include/uapi/asm/kvm_para.h         |   21 +
 arch/loongarch/kernel/paravirt.c                   |   47 +-
 arch/loongarch/kernel/setup.c                      |    2 +
 arch/loongarch/kernel/smp.c                        |    4 +-
 arch/loongarch/kvm/exit.c                          |   46 +-
 arch/loongarch/kvm/vcpu.c                          |  340 +++++-
 arch/loongarch/kvm/vm.c                            |   69 +-
 arch/riscv/include/asm/kvm_vcpu_pmu.h              |   21 +-
 arch/riscv/kvm/vcpu_pmu.c                          |   14 +-
 arch/riscv/kvm/vcpu_sbi.c                          |    4 +-
 tools/testing/selftests/kvm/Makefile               |    2 +
 .../selftests/kvm/aarch64/arch_timer_edge_cases.c  | 1062 +++++++++++++++++++
 tools/testing/selftests/kvm/aarch64/no-vgic-v3.c   |  175 ++++
 tools/testing/selftests/kvm/aarch64/set_id_regs.c  |    1 +
 tools/testing/selftests/kvm/aarch64/vgic_irq.c     |   11 +-
 .../selftests/kvm/include/aarch64/arch_timer.h     |   18 +-
 .../selftests/kvm/include/aarch64/processor.h      |    3 +
 .../testing/selftests/kvm/lib/aarch64/processor.c  |    6 +
 63 files changed, 4041 insertions(+), 409 deletions(-)
 create mode 100644 arch/arm64/kvm/at.c
 create mode 100644 arch/arm64/kvm/ptdump.c
 create mode 100644 arch/loongarch/include/asm/qspinlock.h
 create mode 100644 arch/loongarch/include/uapi/asm/kvm_para.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/arch_timer_edge_cases.c
 create mode 100644 tools/testing/selftests/kvm/aarch64/no-vgic-v3.c

Comments

pr-tracker-bot@kernel.org Sept. 16, 2024, 6:12 a.m. UTC | #1
The pull request you sent on Sun, 15 Sep 2024 02:46:21 -0400:

> https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus-non-x86

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/64dd3b6a79f0907d36de481b0f15fab323a53e5a

Thank you!