From: Marc Zyngier <maz@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>,
Andrew Scull <ascull@google.com>,
Ard Biesheuvel <ardb@kernel.org>,
David Brazdil <dbrazdil@google.com>,
Eric Auger <eric.auger@redhat.com>,
Quentin Perret <qperret@google.com>,
Will Deacon <will@kernel.org>,
Yanan Wang <wangyanan55@huawei.com>,
James Morse <james.morse@arm.com>,
Julien Thierry <julien.thierry.kdev@gmail.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
linux-arm-kernel@lists.infradead.org, kernel-team@android.com
Subject: [GIT PULL] KVM/arm64 updates for 5.12
Date: Fri, 12 Feb 2021 14:36:57 +0000 [thread overview]
Message-ID: <20210212143657.3312035-1-maz@kernel.org> (raw)
Hi Paolo,
Here's the initial set of KVM/arm64 updates for 5.11.
The most notable change this time is David's work to finally build the
nVHE EL2 object as a relocatable object. This makes the code a lot
cleaner, more reliable (we don't have to assume things about code
generation), and allows... function pointers, with any ugly hack!
Progress, at last, and a huge thank you to David!
We also gained support for the new TRNG standard hypercall, and a nice
optimisation for concurrent translation faults targeting the same
page. The rest is a small batch of fixes and other cleanups.
Note that there is another bunch of changes indirectly affecting
KVM/arm64 that are routed via the arm64 tree, as we turn upside down
the way we boot Linux on a VHE system. It's all good fun.
This pull request also comes with strings attached:
- the kvmarm-fixes-5.11-2 tag in order to avoid ugly conflicts, which
explains a sense of déjà-vu in the short-log below
- the arm64/for-next/misc branch because of dependencies
Please pull,
M.
The following changes since commit 19c329f6808995b142b3966301f217c831e7cf31:
Linux 5.11-rc4 (2021-01-17 16:37:05 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-5.12
for you to fetch changes up to c93199e93e1232b7220482dffa05b7a32a195fe8:
Merge branch 'kvm-arm64/pmu-debug-fixes-5.11' into kvmarm-master/next (2021-02-12 14:08:41 +0000)
----------------------------------------------------------------
KVM/arm64 updates for Linux 5.12
- Make the nVHE EL2 object relocatable, resulting in much more
maintainable code
- Handle concurrent translation faults hitting the same page
in a more elegant way
- Support for the standard TRNG hypervisor call
- A bunch of small PMU/Debug fixes
- Allow the disabling of symbol export from assembly code
- Simplification of the early init hypercall handling
----------------------------------------------------------------
Alexandru Elisei (2):
KVM: arm64: Use the reg_to_encoding() macro instead of sys_reg()
KVM: arm64: Correct spelling of DBGDIDR register
Andrew Scull (1):
KVM: arm64: Simplify __kvm_hyp_init HVC detection
Ard Biesheuvel (2):
firmware: smccc: Add SMCCC TRNG function call IDs
KVM: arm64: Implement the TRNG hypervisor call
David Brazdil (9):
KVM: arm64: Allow PSCI SYSTEM_OFF/RESET to return
KVM: arm64: Rename .idmap.text in hyp linker script
KVM: arm64: Set up .hyp.rodata ELF section
KVM: arm64: Add symbol at the beginning of each hyp section
KVM: arm64: Generate hyp relocation data
KVM: arm64: Apply hyp relocations at runtime
KVM: arm64: Fix constant-pool users in hyp
KVM: arm64: Remove patching of fn pointers in hyp
KVM: arm64: Remove hyp_symbol_addr
Marc Zyngier (20):
KVM: arm64: Hide PMU registers from userspace when not available
KVM: arm64: Simplify handling of absent PMU system registers
arm64: Drop workaround for broken 'S' constraint with GCC 4.9
KVM: arm64: Filter out v8.1+ events on v8.0 HW
KVM: Forbid the use of tagged userspace addresses for memslots
Merge branch 'arm64/for-next/misc' into kvm-arm64/hyp-reloc
KVM: arm64: Make gen-hyprel endianness agnostic
KVM: arm64: Fix missing RES1 in emulation of DBGBIDR
KVM: arm64: Fix AArch32 PMUv3 capping
KVM: arm64: Add handling of AArch32 PCMEID{2,3} PMUv3 registers
KVM: arm64: Refactor filtering of ID registers
KVM: arm64: Limit the debug architecture to ARMv8.0
KVM: arm64: Upgrade PMU support to ARMv8.4
KVM: arm64: Use symbolic names for the PMU versions
Merge tag 'kvmarm-fixes-5.11-2' into kvmarm-master/next
Merge branch 'kvm-arm64/misc-5.12' into kvmarm-master/next
Merge branch 'kvm-arm64/concurrent-translation-fault' into kvmarm-master/next
Merge branch 'kvm-arm64/hyp-reloc' into kvmarm-master/next
Merge branch 'kvm-arm64/rng-5.12' into kvmarm-master/next
Merge branch 'kvm-arm64/pmu-debug-fixes-5.11' into kvmarm-master/next
Quentin Perret (2):
asm-generic: export: Stub EXPORT_SYMBOL with __DISABLE_EXPORTS
KVM: arm64: Stub EXPORT_SYMBOL for nVHE EL2 code
Steven Price (1):
KVM: arm64: Compute TPIDR_EL2 ignoring MTE tag
Yanan Wang (3):
KVM: arm64: Adjust partial code of hyp stage-1 map and guest stage-2 map
KVM: arm64: Filter out the case of only changing permissions from stage-2 map path
KVM: arm64: Mark the page dirty only if the fault is handled successfully
Documentation/virt/kvm/api.rst | 3 +
arch/arm64/include/asm/hyp_image.h | 29 +-
arch/arm64/include/asm/kvm_asm.h | 26 --
arch/arm64/include/asm/kvm_host.h | 2 +
arch/arm64/include/asm/kvm_mmu.h | 61 ++---
arch/arm64/include/asm/kvm_pgtable.h | 5 +
arch/arm64/include/asm/sections.h | 3 +-
arch/arm64/include/asm/sysreg.h | 3 +
arch/arm64/kernel/image-vars.h | 1 -
arch/arm64/kernel/smp.c | 4 +-
arch/arm64/kernel/vmlinux.lds.S | 18 +-
arch/arm64/kvm/Makefile | 2 +-
arch/arm64/kvm/arm.c | 10 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 4 +-
arch/arm64/kvm/hyp/nvhe/.gitignore | 2 +
arch/arm64/kvm/hyp/nvhe/Makefile | 33 ++-
arch/arm64/kvm/hyp/nvhe/gen-hyprel.c | 438 +++++++++++++++++++++++++++++++
arch/arm64/kvm/hyp/nvhe/host.S | 29 +-
arch/arm64/kvm/hyp/nvhe/hyp-init.S | 19 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 11 +-
arch/arm64/kvm/hyp/nvhe/hyp-smp.c | 4 +-
arch/arm64/kvm/hyp/nvhe/hyp.lds.S | 9 +-
arch/arm64/kvm/hyp/nvhe/psci-relay.c | 37 ++-
arch/arm64/kvm/hyp/pgtable.c | 83 +++---
arch/arm64/kvm/hyp/vgic-v2-cpuif-proxy.c | 2 +-
arch/arm64/kvm/hypercalls.c | 6 +
arch/arm64/kvm/mmu.c | 13 +-
arch/arm64/kvm/pmu-emul.c | 24 +-
arch/arm64/kvm/sys_regs.c | 178 ++++++++-----
arch/arm64/kvm/trng.c | 85 ++++++
arch/arm64/kvm/va_layout.c | 34 ++-
include/asm-generic/export.h | 2 +-
include/linux/arm-smccc.h | 31 +++
virt/kvm/kvm_main.c | 1 +
34 files changed, 934 insertions(+), 278 deletions(-)
create mode 100644 arch/arm64/kvm/hyp/nvhe/gen-hyprel.c
create mode 100644 arch/arm64/kvm/trng.c
next reply other threads:[~2021-02-12 14:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-12 14:36 Marc Zyngier [this message]
2021-02-12 16:24 ` [GIT PULL] KVM/arm64 updates for 5.12 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=20210212143657.3312035-1-maz@kernel.org \
--to=maz@kernel.org \
--cc=alexandru.elisei@arm.com \
--cc=ardb@kernel.org \
--cc=ascull@google.com \
--cc=dbrazdil@google.com \
--cc=eric.auger@redhat.com \
--cc=james.morse@arm.com \
--cc=julien.thierry.kdev@gmail.com \
--cc=kernel-team@android.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=pbonzini@redhat.com \
--cc=qperret@google.com \
--cc=suzuki.poulose@arm.com \
--cc=wangyanan55@huawei.com \
--cc=will@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox