From: Oliver Upton <oliver.upton@linux.dev>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: maz@kernel.org, reijiw@google.com, dmatlack@google.com,
james.morse@arm.com, suzuki.poulose@arm.com,
yuzenghui@huawei.com, kvmarm@lists.linux.dev,
kvm@vger.kernel.org
Subject: [GIT PULL] KVM/arm64 fixes for 6.3, part #2
Date: Thu, 16 Mar 2023 20:09:20 -0700 [thread overview]
Message-ID: <ZBPZ4D9MIsaCNDh6@thinky-boi> (raw)
Hi Paolo,
Another week, another set of fixes for KVM/arm64.
Description can be found in the tag, but the teardown race when walking
host page tables is particularly nasty and currently causing problems
for folks. The fix is quite simple by disabling interrupts when walking
host page tables, as the thread must be IPI'ed before the table memory
can actually be freed.
Please pull,
Oliver
The following changes since commit 47053904e18282af4525a02e3e0f519f014fc7f9:
KVM: arm64: timers: Convert per-vcpu virtual offset to a global value (2023-03-11 02:00:40 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-fixes-6.3-2
for you to fetch changes up to 8c2e8ac8ad4be68409e806ce1cc78fc7a04539f3:
KVM: arm64: Check for kvm_vma_mte_allowed in the critical section (2023-03-16 23:42:56 +0000)
----------------------------------------------------------------
KVM/arm64 fixes for 6.3, part #2
Fixes for a rather interesting set of bugs relating to the MMU:
- Read the MMU notifier seq before dropping the mmap lock to guard
against reading a potentially stale VMA
- Disable interrupts when walking user page tables to protect against
the page table being freed
- Read the MTE permissions for the VMA within the mmap lock critical
section, avoiding the use of a potentally stale VMA pointer
Additionally, some fixes targeting the vPMU:
- Return the sum of the current perf event value and PMC snapshot for
reads from userspace
- Don't save the value of guest writes to PMCR_EL0.{C,P}, which could
otherwise lead to userspace erroneously resetting the vPMU during VM
save/restore
----------------------------------------------------------------
David Matlack (1):
KVM: arm64: Retry fault if vma_lookup() results become invalid
Marc Zyngier (2):
KVM: arm64: Disable interrupts while walking userspace PTs
KVM: arm64: Check for kvm_vma_mte_allowed in the critical section
Reiji Watanabe (2):
KVM: arm64: PMU: Fix GET_ONE_REG for vPMC regs to return the current value
KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU
arch/arm64/kvm/mmu.c | 99 ++++++++++++++++++++++++++++++-----------------
arch/arm64/kvm/pmu-emul.c | 3 +-
arch/arm64/kvm/sys_regs.c | 21 +++++++++-
3 files changed, 85 insertions(+), 38 deletions(-)
next reply other threads:[~2023-03-17 3:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-17 3:09 Oliver Upton [this message]
2023-03-24 18:16 ` [GIT PULL] KVM/arm64 fixes for 6.3, part #2 Oliver Upton
2023-03-27 11:39 ` Marc Zyngier
2023-03-27 13:59 ` Paolo Bonzini
2023-03-27 14:15 ` Marc Zyngier
2023-03-27 14: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=ZBPZ4D9MIsaCNDh6@thinky-boi \
--to=oliver.upton@linux.dev \
--cc=dmatlack@google.com \
--cc=james.morse@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=pbonzini@redhat.com \
--cc=reijiw@google.com \
--cc=suzuki.poulose@arm.com \
--cc=yuzenghui@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox