All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>,
	Andrew Jones <drjones@redhat.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>, Jinank Jain <jinankj@amazon.de>,
	Keqian Zhu <zhukeqian1@huawei.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Quentin Perret <qperret@google.com>,
	Ricardo Koller <ricarkol@google.com>,
	Steven Price <steven.price@arm.com>,
	Will Deacon <will@kernel.org>,
	Yanan Wang <wangyanan55@huawei.com>,
	James Morse <james.morse@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	kernel-team@android.com
Subject: [GIT PULL] KVM/arm64 updates for 5.14
Date: Fri, 25 Jun 2021 14:43:57 +0100	[thread overview]
Message-ID: <20210625134357.12804-1-maz@kernel.org> (raw)

Hi Paolo,

Here's the 5.14 pull request for 5.14. This round, plenty of changes
in the mm department (MTE, CMOs, device mappings, host S2), but also
a lot of work in the selftest infrastructure. On top of that, a few
PMU fixes, and the ability to run guests on the M1...

Note that we carry a branch (arm64/for-next/caches) shared with the
arm64 tree in order to avoid ugly conflicts. You will still get a few
minor ones with the PPC tree, but the resolution is obvious.

Oh, and each merge commit has a full description of what they contain.
Hopefully we won't get yelled at this time.

Please pull,

	M.

The following changes since commit 8124c8a6b35386f73523d27eacb71b5364a68c4c:

  Linux 5.13-rc4 (2021-05-30 11:58:25 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.14

for you to fetch changes up to 188982cda00ebfe28b50c2905d9bbaa2e9a001b9:

  Merge branch kvm-arm64/mmu/mte into kvmarm-master/next (2021-06-25 14:25:56 +0100)

----------------------------------------------------------------
KVM/arm64 updates for v5.14.

- Add MTE support in guests, complete with tag save/restore interface
- Reduce the impact of CMOs by moving them in the page-table code
- Allow device block mappings at stage-2
- Reduce the footprint of the vmemmap in protected mode
- Support the vGIC on dumb systems such as the Apple M1
- Add selftest infrastructure to support multiple configuration
  and apply that to PMU/non-PMU setups
- Add selftests for the debug architecture
- The usual crop of PMU fixes

----------------------------------------------------------------
Alexandru Elisei (1):
      KVM: arm64: Don't zero the cycle count register when PMCR_EL0.P is set

Andrew Jones (5):
      KVM: arm64: selftests: get-reg-list: Introduce vcpu configs
      KVM: arm64: selftests: get-reg-list: Prepare to run multiple configs at once
      KVM: arm64: selftests: get-reg-list: Provide config selection option
      KVM: arm64: selftests: get-reg-list: Remove get-reg-list-sve
      KVM: arm64: selftests: get-reg-list: Split base and pmu registers

Fuad Tabba (16):
      arm64: Apply errata to swsusp_arch_suspend_exit
      arm64: Do not enable uaccess for flush_icache_range
      arm64: Do not enable uaccess for invalidate_icache_range
      arm64: Downgrade flush_icache_range to invalidate
      arm64: assembler: remove user_alt
      arm64: Move documentation of dcache_by_line_op
      arm64: Fix comments to refer to correct function __flush_icache_range
      arm64: __inval_dcache_area to take end parameter instead of size
      arm64: dcache_by_line_op to take end parameter instead of size
      arm64: __flush_dcache_area to take end parameter instead of size
      arm64: __clean_dcache_area_poc to take end parameter instead of size
      arm64: __clean_dcache_area_pop to take end parameter instead of size
      arm64: __clean_dcache_area_pou to take end parameter instead of size
      arm64: sync_icache_aliases to take end parameter instead of size
      arm64: Fix cache maintenance function comments
      arm64: Rename arm64-internal cache maintenance functions

Keqian Zhu (2):
      KVM: arm64: Remove the creation time's mapping of MMIO regions
      KVM: arm64: Try stage2 block mapping for host device MMIO

Marc Zyngier (22):
      irqchip/gic: Split vGIC probing information from the GIC code
      KVM: arm64: Handle physical FIQ as an IRQ while running a guest
      KVM: arm64: vgic: Be tolerant to the lack of maintenance interrupt masking
      KVM: arm64: vgic: Let an interrupt controller advertise lack of HW deactivation
      KVM: arm64: vgic: move irq->get_input_level into an ops structure
      KVM: arm64: vgic: Implement SW-driven deactivation
      KVM: arm64: timer: Refactor IRQ configuration
      KVM: arm64: timer: Add support for SW-based deactivation
      irqchip/apple-aic: Advertise some level of vGICv3 compatibility
      Merge branch kvm-arm64/m1 into kvmarm-master/next
      Merge branch kvm-arm64/mmu/MMIO-block-mapping into kvmarm-master/next
      Merge branch kvm-arm64/mmu/reduce-vmemmap-overhead into kvmarm-master/next
      Merge branch kvm-arm64/selftest/debug into kvmarm-master/next
      Merge branch kvm-arm64/mmu/stage2-cmos into kvmarm-master/next
      KVM: arm64: Restore PMU configuration on first run
      Merge branch kvm-arm64/pmu-fixes into kvmarm-master/next
      Merge branch arm64/for-next/caches into kvmarm-master/next
      KVM: arm64: Update MAINTAINERS to include selftests
      Merge branch kvm-arm64/selftest/sysreg-list-fix into kvmarm-master/next
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next
      KVM: arm64: Set the MTE tag bit before releasing the page
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next

Mark Rutland (2):
      arm64: assembler: replace `kaddr` with `addr`
      arm64: assembler: add conditional cache fixups

Quentin Perret (7):
      KVM: arm64: Move hyp_pool locking out of refcount helpers
      KVM: arm64: Use refcount at hyp to check page availability
      KVM: arm64: Remove list_head from hyp_page
      KVM: arm64: Unify MMIO and mem host stage-2 pools
      KVM: arm64: Remove hyp_pool pointer from struct hyp_page
      KVM: arm64: Use less bits for hyp_page order
      KVM: arm64: Use less bits for hyp_page refcount

Ricardo Koller (6):
      KVM: selftests: Rename vm_handle_exception
      KVM: selftests: Complete x86_64/sync_regs_test ucall
      KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting
      KVM: selftests: Move GUEST_ASSERT_EQ to utils header
      KVM: selftests: Add exception handling support for aarch64
      KVM: selftests: Add aarch64/debug-exceptions test

Steven Price (6):
      arm64: mte: Sync tags for pages where PTE is untagged
      KVM: arm64: Introduce MTE VM feature
      KVM: arm64: Save/restore MTE registers
      KVM: arm64: Expose KVM_ARM_CAP_MTE
      KVM: arm64: Add ioctl to fetch/store tags in a guest
      KVM: arm64: Document MTE capability and ioctl

Yanan Wang (4):
      KVM: arm64: Introduce two cache maintenance callbacks
      KVM: arm64: Introduce mm_ops member for structure stage2_attr_data
      KVM: arm64: Tweak parameters of guest cache maintenance functions
      KVM: arm64: Move guest CMOs to the fault handlers

 Documentation/virt/kvm/api.rst                     |  61 +++
 MAINTAINERS                                        |   2 +
 arch/arm64/include/asm/alternative-macros.h        |   5 -
 arch/arm64/include/asm/arch_gicv3.h                |   3 +-
 arch/arm64/include/asm/assembler.h                 |  80 ++--
 arch/arm64/include/asm/cacheflush.h                |  71 ++--
 arch/arm64/include/asm/efi.h                       |   2 +-
 arch/arm64/include/asm/kvm_arm.h                   |   3 +-
 arch/arm64/include/asm/kvm_emulate.h               |   3 +
 arch/arm64/include/asm/kvm_host.h                  |  14 +
 arch/arm64/include/asm/kvm_mmu.h                   |  17 +-
 arch/arm64/include/asm/kvm_mte.h                   |  66 ++++
 arch/arm64/include/asm/kvm_pgtable.h               |  42 +-
 arch/arm64/include/asm/mte-def.h                   |   1 +
 arch/arm64/include/asm/mte.h                       |   4 +-
 arch/arm64/include/asm/pgtable.h                   |  22 +-
 arch/arm64/include/asm/sysreg.h                    |   3 +-
 arch/arm64/include/uapi/asm/kvm.h                  |  11 +
 arch/arm64/kernel/alternative.c                    |   2 +-
 arch/arm64/kernel/asm-offsets.c                    |   2 +
 arch/arm64/kernel/efi-entry.S                      |   9 +-
 arch/arm64/kernel/head.S                           |  13 +-
 arch/arm64/kernel/hibernate-asm.S                  |   7 +-
 arch/arm64/kernel/hibernate.c                      |  20 +-
 arch/arm64/kernel/idreg-override.c                 |   3 +-
 arch/arm64/kernel/image-vars.h                     |   2 +-
 arch/arm64/kernel/insn.c                           |   2 +-
 arch/arm64/kernel/kaslr.c                          |  12 +-
 arch/arm64/kernel/machine_kexec.c                  |  30 +-
 arch/arm64/kernel/mte.c                            |  18 +-
 arch/arm64/kernel/probes/uprobes.c                 |   2 +-
 arch/arm64/kernel/smp.c                            |   8 +-
 arch/arm64/kernel/smp_spin_table.c                 |   7 +-
 arch/arm64/kernel/sys_compat.c                     |   2 +-
 arch/arm64/kvm/arch_timer.c                        | 162 ++++++--
 arch/arm64/kvm/arm.c                               |  22 +-
 arch/arm64/kvm/guest.c                             |  86 ++++
 arch/arm64/kvm/hyp/entry.S                         |   7 +
 arch/arm64/kvm/hyp/exception.c                     |   3 +-
 arch/arm64/kvm/hyp/hyp-entry.S                     |   6 +-
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h         |  21 +
 arch/arm64/kvm/hyp/include/nvhe/gfp.h              |  45 +--
 arch/arm64/kvm/hyp/include/nvhe/mem_protect.h      |   2 +-
 arch/arm64/kvm/hyp/include/nvhe/memory.h           |   7 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |  13 +-
 arch/arm64/kvm/hyp/nvhe/cache.S                    |   4 +-
 arch/arm64/kvm/hyp/nvhe/mem_protect.c              |  60 +--
 arch/arm64/kvm/hyp/nvhe/page_alloc.c               | 112 ++++--
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  33 +-
 arch/arm64/kvm/hyp/nvhe/tlb.c                      |   2 +-
 arch/arm64/kvm/hyp/pgtable.c                       |  61 ++-
 arch/arm64/kvm/hyp/reserved_mem.c                  |   3 +-
 arch/arm64/kvm/mmu.c                               | 196 ++++++---
 arch/arm64/kvm/pmu-emul.c                          |   4 +
 arch/arm64/kvm/reset.c                             |   4 +
 arch/arm64/kvm/sys_regs.c                          |  32 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |  36 +-
 arch/arm64/kvm/vgic/vgic-v2.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic.c                         |  14 +-
 arch/arm64/lib/uaccess_flushcache.c                |   4 +-
 arch/arm64/mm/cache.S                              | 158 ++++----
 arch/arm64/mm/flush.c                              |  29 +-
 drivers/irqchip/irq-apple-aic.c                    |   9 +
 drivers/irqchip/irq-gic-common.c                   |  13 -
 drivers/irqchip/irq-gic-common.h                   |   2 -
 drivers/irqchip/irq-gic-v3.c                       |   6 +-
 drivers/irqchip/irq-gic.c                          |   6 +-
 include/kvm/arm_vgic.h                             |  41 +-
 include/linux/irqchip/arm-gic-common.h             |  25 +-
 include/linux/irqchip/arm-vgic-info.h              |  45 +++
 include/uapi/linux/kvm.h                           |   2 +
 tools/testing/selftests/kvm/.gitignore             |   2 +-
 tools/testing/selftests/kvm/Makefile               |   4 +-
 .../selftests/kvm/aarch64/debug-exceptions.c       | 250 ++++++++++++
 .../selftests/kvm/aarch64/get-reg-list-sve.c       |   3 -
 tools/testing/selftests/kvm/aarch64/get-reg-list.c | 439 +++++++++++++++------
 .../selftests/kvm/include/aarch64/processor.h      |  83 +++-
 tools/testing/selftests/kvm/include/kvm_util.h     |  23 +-
 .../selftests/kvm/include/x86_64/processor.h       |   4 +-
 tools/testing/selftests/kvm/lib/aarch64/handlers.S | 126 ++++++
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  97 +++++
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  23 +-
 tools/testing/selftests/kvm/x86_64/evmcs_test.c    |   4 +-
 tools/testing/selftests/kvm/x86_64/kvm_pv_test.c   |   2 +-
 .../testing/selftests/kvm/x86_64/sync_regs_test.c  |   7 +-
 tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |   9 -
 .../selftests/kvm/x86_64/userspace_msr_exit_test.c |   8 +-
 .../testing/selftests/kvm/x86_64/xapic_ipi_test.c  |   2 +-
 89 files changed, 2208 insertions(+), 740 deletions(-)
 create mode 100644 arch/arm64/include/asm/kvm_mte.h
 create mode 100644 include/linux/irqchip/arm-vgic-info.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/get-reg-list-sve.c
 create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvmarm@lists.cs.columbia.edu, kernel-team@android.com,
	kvm@vger.kernel.org, Will Deacon <will@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Steven Price <steven.price@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	Jinank Jain <jinankj@amazon.de>
Subject: [GIT PULL] KVM/arm64 updates for 5.14
Date: Fri, 25 Jun 2021 14:43:57 +0100	[thread overview]
Message-ID: <20210625134357.12804-1-maz@kernel.org> (raw)

Hi Paolo,

Here's the 5.14 pull request for 5.14. This round, plenty of changes
in the mm department (MTE, CMOs, device mappings, host S2), but also
a lot of work in the selftest infrastructure. On top of that, a few
PMU fixes, and the ability to run guests on the M1...

Note that we carry a branch (arm64/for-next/caches) shared with the
arm64 tree in order to avoid ugly conflicts. You will still get a few
minor ones with the PPC tree, but the resolution is obvious.

Oh, and each merge commit has a full description of what they contain.
Hopefully we won't get yelled at this time.

Please pull,

	M.

The following changes since commit 8124c8a6b35386f73523d27eacb71b5364a68c4c:

  Linux 5.13-rc4 (2021-05-30 11:58:25 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.14

for you to fetch changes up to 188982cda00ebfe28b50c2905d9bbaa2e9a001b9:

  Merge branch kvm-arm64/mmu/mte into kvmarm-master/next (2021-06-25 14:25:56 +0100)

----------------------------------------------------------------
KVM/arm64 updates for v5.14.

- Add MTE support in guests, complete with tag save/restore interface
- Reduce the impact of CMOs by moving them in the page-table code
- Allow device block mappings at stage-2
- Reduce the footprint of the vmemmap in protected mode
- Support the vGIC on dumb systems such as the Apple M1
- Add selftest infrastructure to support multiple configuration
  and apply that to PMU/non-PMU setups
- Add selftests for the debug architecture
- The usual crop of PMU fixes

----------------------------------------------------------------
Alexandru Elisei (1):
      KVM: arm64: Don't zero the cycle count register when PMCR_EL0.P is set

Andrew Jones (5):
      KVM: arm64: selftests: get-reg-list: Introduce vcpu configs
      KVM: arm64: selftests: get-reg-list: Prepare to run multiple configs at once
      KVM: arm64: selftests: get-reg-list: Provide config selection option
      KVM: arm64: selftests: get-reg-list: Remove get-reg-list-sve
      KVM: arm64: selftests: get-reg-list: Split base and pmu registers

Fuad Tabba (16):
      arm64: Apply errata to swsusp_arch_suspend_exit
      arm64: Do not enable uaccess for flush_icache_range
      arm64: Do not enable uaccess for invalidate_icache_range
      arm64: Downgrade flush_icache_range to invalidate
      arm64: assembler: remove user_alt
      arm64: Move documentation of dcache_by_line_op
      arm64: Fix comments to refer to correct function __flush_icache_range
      arm64: __inval_dcache_area to take end parameter instead of size
      arm64: dcache_by_line_op to take end parameter instead of size
      arm64: __flush_dcache_area to take end parameter instead of size
      arm64: __clean_dcache_area_poc to take end parameter instead of size
      arm64: __clean_dcache_area_pop to take end parameter instead of size
      arm64: __clean_dcache_area_pou to take end parameter instead of size
      arm64: sync_icache_aliases to take end parameter instead of size
      arm64: Fix cache maintenance function comments
      arm64: Rename arm64-internal cache maintenance functions

Keqian Zhu (2):
      KVM: arm64: Remove the creation time's mapping of MMIO regions
      KVM: arm64: Try stage2 block mapping for host device MMIO

Marc Zyngier (22):
      irqchip/gic: Split vGIC probing information from the GIC code
      KVM: arm64: Handle physical FIQ as an IRQ while running a guest
      KVM: arm64: vgic: Be tolerant to the lack of maintenance interrupt masking
      KVM: arm64: vgic: Let an interrupt controller advertise lack of HW deactivation
      KVM: arm64: vgic: move irq->get_input_level into an ops structure
      KVM: arm64: vgic: Implement SW-driven deactivation
      KVM: arm64: timer: Refactor IRQ configuration
      KVM: arm64: timer: Add support for SW-based deactivation
      irqchip/apple-aic: Advertise some level of vGICv3 compatibility
      Merge branch kvm-arm64/m1 into kvmarm-master/next
      Merge branch kvm-arm64/mmu/MMIO-block-mapping into kvmarm-master/next
      Merge branch kvm-arm64/mmu/reduce-vmemmap-overhead into kvmarm-master/next
      Merge branch kvm-arm64/selftest/debug into kvmarm-master/next
      Merge branch kvm-arm64/mmu/stage2-cmos into kvmarm-master/next
      KVM: arm64: Restore PMU configuration on first run
      Merge branch kvm-arm64/pmu-fixes into kvmarm-master/next
      Merge branch arm64/for-next/caches into kvmarm-master/next
      KVM: arm64: Update MAINTAINERS to include selftests
      Merge branch kvm-arm64/selftest/sysreg-list-fix into kvmarm-master/next
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next
      KVM: arm64: Set the MTE tag bit before releasing the page
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next

Mark Rutland (2):
      arm64: assembler: replace `kaddr` with `addr`
      arm64: assembler: add conditional cache fixups

Quentin Perret (7):
      KVM: arm64: Move hyp_pool locking out of refcount helpers
      KVM: arm64: Use refcount at hyp to check page availability
      KVM: arm64: Remove list_head from hyp_page
      KVM: arm64: Unify MMIO and mem host stage-2 pools
      KVM: arm64: Remove hyp_pool pointer from struct hyp_page
      KVM: arm64: Use less bits for hyp_page order
      KVM: arm64: Use less bits for hyp_page refcount

Ricardo Koller (6):
      KVM: selftests: Rename vm_handle_exception
      KVM: selftests: Complete x86_64/sync_regs_test ucall
      KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting
      KVM: selftests: Move GUEST_ASSERT_EQ to utils header
      KVM: selftests: Add exception handling support for aarch64
      KVM: selftests: Add aarch64/debug-exceptions test

Steven Price (6):
      arm64: mte: Sync tags for pages where PTE is untagged
      KVM: arm64: Introduce MTE VM feature
      KVM: arm64: Save/restore MTE registers
      KVM: arm64: Expose KVM_ARM_CAP_MTE
      KVM: arm64: Add ioctl to fetch/store tags in a guest
      KVM: arm64: Document MTE capability and ioctl

Yanan Wang (4):
      KVM: arm64: Introduce two cache maintenance callbacks
      KVM: arm64: Introduce mm_ops member for structure stage2_attr_data
      KVM: arm64: Tweak parameters of guest cache maintenance functions
      KVM: arm64: Move guest CMOs to the fault handlers

 Documentation/virt/kvm/api.rst                     |  61 +++
 MAINTAINERS                                        |   2 +
 arch/arm64/include/asm/alternative-macros.h        |   5 -
 arch/arm64/include/asm/arch_gicv3.h                |   3 +-
 arch/arm64/include/asm/assembler.h                 |  80 ++--
 arch/arm64/include/asm/cacheflush.h                |  71 ++--
 arch/arm64/include/asm/efi.h                       |   2 +-
 arch/arm64/include/asm/kvm_arm.h                   |   3 +-
 arch/arm64/include/asm/kvm_emulate.h               |   3 +
 arch/arm64/include/asm/kvm_host.h                  |  14 +
 arch/arm64/include/asm/kvm_mmu.h                   |  17 +-
 arch/arm64/include/asm/kvm_mte.h                   |  66 ++++
 arch/arm64/include/asm/kvm_pgtable.h               |  42 +-
 arch/arm64/include/asm/mte-def.h                   |   1 +
 arch/arm64/include/asm/mte.h                       |   4 +-
 arch/arm64/include/asm/pgtable.h                   |  22 +-
 arch/arm64/include/asm/sysreg.h                    |   3 +-
 arch/arm64/include/uapi/asm/kvm.h                  |  11 +
 arch/arm64/kernel/alternative.c                    |   2 +-
 arch/arm64/kernel/asm-offsets.c                    |   2 +
 arch/arm64/kernel/efi-entry.S                      |   9 +-
 arch/arm64/kernel/head.S                           |  13 +-
 arch/arm64/kernel/hibernate-asm.S                  |   7 +-
 arch/arm64/kernel/hibernate.c                      |  20 +-
 arch/arm64/kernel/idreg-override.c                 |   3 +-
 arch/arm64/kernel/image-vars.h                     |   2 +-
 arch/arm64/kernel/insn.c                           |   2 +-
 arch/arm64/kernel/kaslr.c                          |  12 +-
 arch/arm64/kernel/machine_kexec.c                  |  30 +-
 arch/arm64/kernel/mte.c                            |  18 +-
 arch/arm64/kernel/probes/uprobes.c                 |   2 +-
 arch/arm64/kernel/smp.c                            |   8 +-
 arch/arm64/kernel/smp_spin_table.c                 |   7 +-
 arch/arm64/kernel/sys_compat.c                     |   2 +-
 arch/arm64/kvm/arch_timer.c                        | 162 ++++++--
 arch/arm64/kvm/arm.c                               |  22 +-
 arch/arm64/kvm/guest.c                             |  86 ++++
 arch/arm64/kvm/hyp/entry.S                         |   7 +
 arch/arm64/kvm/hyp/exception.c                     |   3 +-
 arch/arm64/kvm/hyp/hyp-entry.S                     |   6 +-
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h         |  21 +
 arch/arm64/kvm/hyp/include/nvhe/gfp.h              |  45 +--
 arch/arm64/kvm/hyp/include/nvhe/mem_protect.h      |   2 +-
 arch/arm64/kvm/hyp/include/nvhe/memory.h           |   7 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |  13 +-
 arch/arm64/kvm/hyp/nvhe/cache.S                    |   4 +-
 arch/arm64/kvm/hyp/nvhe/mem_protect.c              |  60 +--
 arch/arm64/kvm/hyp/nvhe/page_alloc.c               | 112 ++++--
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  33 +-
 arch/arm64/kvm/hyp/nvhe/tlb.c                      |   2 +-
 arch/arm64/kvm/hyp/pgtable.c                       |  61 ++-
 arch/arm64/kvm/hyp/reserved_mem.c                  |   3 +-
 arch/arm64/kvm/mmu.c                               | 196 ++++++---
 arch/arm64/kvm/pmu-emul.c                          |   4 +
 arch/arm64/kvm/reset.c                             |   4 +
 arch/arm64/kvm/sys_regs.c                          |  32 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |  36 +-
 arch/arm64/kvm/vgic/vgic-v2.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic.c                         |  14 +-
 arch/arm64/lib/uaccess_flushcache.c                |   4 +-
 arch/arm64/mm/cache.S                              | 158 ++++----
 arch/arm64/mm/flush.c                              |  29 +-
 drivers/irqchip/irq-apple-aic.c                    |   9 +
 drivers/irqchip/irq-gic-common.c                   |  13 -
 drivers/irqchip/irq-gic-common.h                   |   2 -
 drivers/irqchip/irq-gic-v3.c                       |   6 +-
 drivers/irqchip/irq-gic.c                          |   6 +-
 include/kvm/arm_vgic.h                             |  41 +-
 include/linux/irqchip/arm-gic-common.h             |  25 +-
 include/linux/irqchip/arm-vgic-info.h              |  45 +++
 include/uapi/linux/kvm.h                           |   2 +
 tools/testing/selftests/kvm/.gitignore             |   2 +-
 tools/testing/selftests/kvm/Makefile               |   4 +-
 .../selftests/kvm/aarch64/debug-exceptions.c       | 250 ++++++++++++
 .../selftests/kvm/aarch64/get-reg-list-sve.c       |   3 -
 tools/testing/selftests/kvm/aarch64/get-reg-list.c | 439 +++++++++++++++------
 .../selftests/kvm/include/aarch64/processor.h      |  83 +++-
 tools/testing/selftests/kvm/include/kvm_util.h     |  23 +-
 .../selftests/kvm/include/x86_64/processor.h       |   4 +-
 tools/testing/selftests/kvm/lib/aarch64/handlers.S | 126 ++++++
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  97 +++++
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  23 +-
 tools/testing/selftests/kvm/x86_64/evmcs_test.c    |   4 +-
 tools/testing/selftests/kvm/x86_64/kvm_pv_test.c   |   2 +-
 .../testing/selftests/kvm/x86_64/sync_regs_test.c  |   7 +-
 tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |   9 -
 .../selftests/kvm/x86_64/userspace_msr_exit_test.c |   8 +-
 .../testing/selftests/kvm/x86_64/xapic_ipi_test.c  |   2 +-
 89 files changed, 2208 insertions(+), 740 deletions(-)
 create mode 100644 arch/arm64/include/asm/kvm_mte.h
 create mode 100644 include/linux/irqchip/arm-vgic-info.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/get-reg-list-sve.c
 create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>,
	Andrew Jones <drjones@redhat.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>, Jinank Jain <jinankj@amazon.de>,
	Keqian Zhu <zhukeqian1@huawei.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Quentin Perret <qperret@google.com>,
	Ricardo Koller <ricarkol@google.com>,
	Steven Price <steven.price@arm.com>,
	Will Deacon <will@kernel.org>,
	Yanan Wang <wangyanan55@huawei.com>,
	James Morse <james.morse@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	kernel-team@android.com
Subject: [GIT PULL] KVM/arm64 updates for 5.14
Date: Fri, 25 Jun 2021 14:43:57 +0100	[thread overview]
Message-ID: <20210625134357.12804-1-maz@kernel.org> (raw)

Hi Paolo,

Here's the 5.14 pull request for 5.14. This round, plenty of changes
in the mm department (MTE, CMOs, device mappings, host S2), but also
a lot of work in the selftest infrastructure. On top of that, a few
PMU fixes, and the ability to run guests on the M1...

Note that we carry a branch (arm64/for-next/caches) shared with the
arm64 tree in order to avoid ugly conflicts. You will still get a few
minor ones with the PPC tree, but the resolution is obvious.

Oh, and each merge commit has a full description of what they contain.
Hopefully we won't get yelled at this time.

Please pull,

	M.

The following changes since commit 8124c8a6b35386f73523d27eacb71b5364a68c4c:

  Linux 5.13-rc4 (2021-05-30 11:58:25 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.14

for you to fetch changes up to 188982cda00ebfe28b50c2905d9bbaa2e9a001b9:

  Merge branch kvm-arm64/mmu/mte into kvmarm-master/next (2021-06-25 14:25:56 +0100)

----------------------------------------------------------------
KVM/arm64 updates for v5.14.

- Add MTE support in guests, complete with tag save/restore interface
- Reduce the impact of CMOs by moving them in the page-table code
- Allow device block mappings at stage-2
- Reduce the footprint of the vmemmap in protected mode
- Support the vGIC on dumb systems such as the Apple M1
- Add selftest infrastructure to support multiple configuration
  and apply that to PMU/non-PMU setups
- Add selftests for the debug architecture
- The usual crop of PMU fixes

----------------------------------------------------------------
Alexandru Elisei (1):
      KVM: arm64: Don't zero the cycle count register when PMCR_EL0.P is set

Andrew Jones (5):
      KVM: arm64: selftests: get-reg-list: Introduce vcpu configs
      KVM: arm64: selftests: get-reg-list: Prepare to run multiple configs at once
      KVM: arm64: selftests: get-reg-list: Provide config selection option
      KVM: arm64: selftests: get-reg-list: Remove get-reg-list-sve
      KVM: arm64: selftests: get-reg-list: Split base and pmu registers

Fuad Tabba (16):
      arm64: Apply errata to swsusp_arch_suspend_exit
      arm64: Do not enable uaccess for flush_icache_range
      arm64: Do not enable uaccess for invalidate_icache_range
      arm64: Downgrade flush_icache_range to invalidate
      arm64: assembler: remove user_alt
      arm64: Move documentation of dcache_by_line_op
      arm64: Fix comments to refer to correct function __flush_icache_range
      arm64: __inval_dcache_area to take end parameter instead of size
      arm64: dcache_by_line_op to take end parameter instead of size
      arm64: __flush_dcache_area to take end parameter instead of size
      arm64: __clean_dcache_area_poc to take end parameter instead of size
      arm64: __clean_dcache_area_pop to take end parameter instead of size
      arm64: __clean_dcache_area_pou to take end parameter instead of size
      arm64: sync_icache_aliases to take end parameter instead of size
      arm64: Fix cache maintenance function comments
      arm64: Rename arm64-internal cache maintenance functions

Keqian Zhu (2):
      KVM: arm64: Remove the creation time's mapping of MMIO regions
      KVM: arm64: Try stage2 block mapping for host device MMIO

Marc Zyngier (22):
      irqchip/gic: Split vGIC probing information from the GIC code
      KVM: arm64: Handle physical FIQ as an IRQ while running a guest
      KVM: arm64: vgic: Be tolerant to the lack of maintenance interrupt masking
      KVM: arm64: vgic: Let an interrupt controller advertise lack of HW deactivation
      KVM: arm64: vgic: move irq->get_input_level into an ops structure
      KVM: arm64: vgic: Implement SW-driven deactivation
      KVM: arm64: timer: Refactor IRQ configuration
      KVM: arm64: timer: Add support for SW-based deactivation
      irqchip/apple-aic: Advertise some level of vGICv3 compatibility
      Merge branch kvm-arm64/m1 into kvmarm-master/next
      Merge branch kvm-arm64/mmu/MMIO-block-mapping into kvmarm-master/next
      Merge branch kvm-arm64/mmu/reduce-vmemmap-overhead into kvmarm-master/next
      Merge branch kvm-arm64/selftest/debug into kvmarm-master/next
      Merge branch kvm-arm64/mmu/stage2-cmos into kvmarm-master/next
      KVM: arm64: Restore PMU configuration on first run
      Merge branch kvm-arm64/pmu-fixes into kvmarm-master/next
      Merge branch arm64/for-next/caches into kvmarm-master/next
      KVM: arm64: Update MAINTAINERS to include selftests
      Merge branch kvm-arm64/selftest/sysreg-list-fix into kvmarm-master/next
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next
      KVM: arm64: Set the MTE tag bit before releasing the page
      Merge branch kvm-arm64/mmu/mte into kvmarm-master/next

Mark Rutland (2):
      arm64: assembler: replace `kaddr` with `addr`
      arm64: assembler: add conditional cache fixups

Quentin Perret (7):
      KVM: arm64: Move hyp_pool locking out of refcount helpers
      KVM: arm64: Use refcount at hyp to check page availability
      KVM: arm64: Remove list_head from hyp_page
      KVM: arm64: Unify MMIO and mem host stage-2 pools
      KVM: arm64: Remove hyp_pool pointer from struct hyp_page
      KVM: arm64: Use less bits for hyp_page order
      KVM: arm64: Use less bits for hyp_page refcount

Ricardo Koller (6):
      KVM: selftests: Rename vm_handle_exception
      KVM: selftests: Complete x86_64/sync_regs_test ucall
      KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting
      KVM: selftests: Move GUEST_ASSERT_EQ to utils header
      KVM: selftests: Add exception handling support for aarch64
      KVM: selftests: Add aarch64/debug-exceptions test

Steven Price (6):
      arm64: mte: Sync tags for pages where PTE is untagged
      KVM: arm64: Introduce MTE VM feature
      KVM: arm64: Save/restore MTE registers
      KVM: arm64: Expose KVM_ARM_CAP_MTE
      KVM: arm64: Add ioctl to fetch/store tags in a guest
      KVM: arm64: Document MTE capability and ioctl

Yanan Wang (4):
      KVM: arm64: Introduce two cache maintenance callbacks
      KVM: arm64: Introduce mm_ops member for structure stage2_attr_data
      KVM: arm64: Tweak parameters of guest cache maintenance functions
      KVM: arm64: Move guest CMOs to the fault handlers

 Documentation/virt/kvm/api.rst                     |  61 +++
 MAINTAINERS                                        |   2 +
 arch/arm64/include/asm/alternative-macros.h        |   5 -
 arch/arm64/include/asm/arch_gicv3.h                |   3 +-
 arch/arm64/include/asm/assembler.h                 |  80 ++--
 arch/arm64/include/asm/cacheflush.h                |  71 ++--
 arch/arm64/include/asm/efi.h                       |   2 +-
 arch/arm64/include/asm/kvm_arm.h                   |   3 +-
 arch/arm64/include/asm/kvm_emulate.h               |   3 +
 arch/arm64/include/asm/kvm_host.h                  |  14 +
 arch/arm64/include/asm/kvm_mmu.h                   |  17 +-
 arch/arm64/include/asm/kvm_mte.h                   |  66 ++++
 arch/arm64/include/asm/kvm_pgtable.h               |  42 +-
 arch/arm64/include/asm/mte-def.h                   |   1 +
 arch/arm64/include/asm/mte.h                       |   4 +-
 arch/arm64/include/asm/pgtable.h                   |  22 +-
 arch/arm64/include/asm/sysreg.h                    |   3 +-
 arch/arm64/include/uapi/asm/kvm.h                  |  11 +
 arch/arm64/kernel/alternative.c                    |   2 +-
 arch/arm64/kernel/asm-offsets.c                    |   2 +
 arch/arm64/kernel/efi-entry.S                      |   9 +-
 arch/arm64/kernel/head.S                           |  13 +-
 arch/arm64/kernel/hibernate-asm.S                  |   7 +-
 arch/arm64/kernel/hibernate.c                      |  20 +-
 arch/arm64/kernel/idreg-override.c                 |   3 +-
 arch/arm64/kernel/image-vars.h                     |   2 +-
 arch/arm64/kernel/insn.c                           |   2 +-
 arch/arm64/kernel/kaslr.c                          |  12 +-
 arch/arm64/kernel/machine_kexec.c                  |  30 +-
 arch/arm64/kernel/mte.c                            |  18 +-
 arch/arm64/kernel/probes/uprobes.c                 |   2 +-
 arch/arm64/kernel/smp.c                            |   8 +-
 arch/arm64/kernel/smp_spin_table.c                 |   7 +-
 arch/arm64/kernel/sys_compat.c                     |   2 +-
 arch/arm64/kvm/arch_timer.c                        | 162 ++++++--
 arch/arm64/kvm/arm.c                               |  22 +-
 arch/arm64/kvm/guest.c                             |  86 ++++
 arch/arm64/kvm/hyp/entry.S                         |   7 +
 arch/arm64/kvm/hyp/exception.c                     |   3 +-
 arch/arm64/kvm/hyp/hyp-entry.S                     |   6 +-
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h         |  21 +
 arch/arm64/kvm/hyp/include/nvhe/gfp.h              |  45 +--
 arch/arm64/kvm/hyp/include/nvhe/mem_protect.h      |   2 +-
 arch/arm64/kvm/hyp/include/nvhe/memory.h           |   7 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |  13 +-
 arch/arm64/kvm/hyp/nvhe/cache.S                    |   4 +-
 arch/arm64/kvm/hyp/nvhe/mem_protect.c              |  60 +--
 arch/arm64/kvm/hyp/nvhe/page_alloc.c               | 112 ++++--
 arch/arm64/kvm/hyp/nvhe/setup.c                    |  33 +-
 arch/arm64/kvm/hyp/nvhe/tlb.c                      |   2 +-
 arch/arm64/kvm/hyp/pgtable.c                       |  61 ++-
 arch/arm64/kvm/hyp/reserved_mem.c                  |   3 +-
 arch/arm64/kvm/mmu.c                               | 196 ++++++---
 arch/arm64/kvm/pmu-emul.c                          |   4 +
 arch/arm64/kvm/reset.c                             |   4 +
 arch/arm64/kvm/sys_regs.c                          |  32 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |  36 +-
 arch/arm64/kvm/vgic/vgic-v2.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |  19 +-
 arch/arm64/kvm/vgic/vgic.c                         |  14 +-
 arch/arm64/lib/uaccess_flushcache.c                |   4 +-
 arch/arm64/mm/cache.S                              | 158 ++++----
 arch/arm64/mm/flush.c                              |  29 +-
 drivers/irqchip/irq-apple-aic.c                    |   9 +
 drivers/irqchip/irq-gic-common.c                   |  13 -
 drivers/irqchip/irq-gic-common.h                   |   2 -
 drivers/irqchip/irq-gic-v3.c                       |   6 +-
 drivers/irqchip/irq-gic.c                          |   6 +-
 include/kvm/arm_vgic.h                             |  41 +-
 include/linux/irqchip/arm-gic-common.h             |  25 +-
 include/linux/irqchip/arm-vgic-info.h              |  45 +++
 include/uapi/linux/kvm.h                           |   2 +
 tools/testing/selftests/kvm/.gitignore             |   2 +-
 tools/testing/selftests/kvm/Makefile               |   4 +-
 .../selftests/kvm/aarch64/debug-exceptions.c       | 250 ++++++++++++
 .../selftests/kvm/aarch64/get-reg-list-sve.c       |   3 -
 tools/testing/selftests/kvm/aarch64/get-reg-list.c | 439 +++++++++++++++------
 .../selftests/kvm/include/aarch64/processor.h      |  83 +++-
 tools/testing/selftests/kvm/include/kvm_util.h     |  23 +-
 .../selftests/kvm/include/x86_64/processor.h       |   4 +-
 tools/testing/selftests/kvm/lib/aarch64/handlers.S | 126 ++++++
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  97 +++++
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  23 +-
 tools/testing/selftests/kvm/x86_64/evmcs_test.c    |   4 +-
 tools/testing/selftests/kvm/x86_64/kvm_pv_test.c   |   2 +-
 .../testing/selftests/kvm/x86_64/sync_regs_test.c  |   7 +-
 tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |   9 -
 .../selftests/kvm/x86_64/userspace_msr_exit_test.c |   8 +-
 .../testing/selftests/kvm/x86_64/xapic_ipi_test.c  |   2 +-
 89 files changed, 2208 insertions(+), 740 deletions(-)
 create mode 100644 arch/arm64/include/asm/kvm_mte.h
 create mode 100644 include/linux/irqchip/arm-vgic-info.h
 create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c
 delete mode 100644 tools/testing/selftests/kvm/aarch64/get-reg-list-sve.c
 create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2021-06-25 13:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-25 13:43 Marc Zyngier [this message]
2021-06-25 13:43 ` [GIT PULL] KVM/arm64 updates for 5.14 Marc Zyngier
2021-06-25 13:43 ` Marc Zyngier
2021-06-25 15:22 ` Paolo Bonzini
2021-06-25 15:22   ` Paolo Bonzini
2021-06-25 15:22   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210625134357.12804-1-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=alexandru.elisei@arm.com \
    --cc=ardb@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=drjones@redhat.com \
    --cc=james.morse@arm.com \
    --cc=jinankj@amazon.de \
    --cc=kernel-team@android.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=pbonzini@redhat.com \
    --cc=qperret@google.com \
    --cc=ricarkol@google.com \
    --cc=steven.price@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tabba@google.com \
    --cc=wangyanan55@huawei.com \
    --cc=will@kernel.org \
    --cc=zhukeqian1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.