From: andre.przywara@arm.com (Andre Przywara)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/4] KVM: arm/arm64: Fix locking issues
Date: Fri, 11 May 2018 15:20:11 +0100 [thread overview]
Message-ID: <20180511142015.21953-1-andre.przywara@arm.com> (raw)
Jan recently reported lockdep complaints regarding various locks in our
VGIC emulation [1][2].
This boiled down to two separate issues:
- When promoting the vgic_irq->irq_lock to require IRQs being disabled,
we forgot to amend some instances of this lock on the way. Also this
needs to be applied to dependent locks as well. The first two patches
fix that. The patch split is designed to simplify backporting.
Those patches have been posted before, I am resending them as part
of this series.
- Calling kvm_read_guest() requires us to be inside an SRCU critical
section. On some architectures we are always in it when handling VCPU
exits, but on ARM we need to lock it individually. Patches 3 and 4
fix that, the split is again made to ease backporting.
Each of the hunks fix an indiviual commit, but I refrained from
splitting this down into eight patches just to put proper Fixes: tags
on it. Eventually those commits are part of one out of two series, I put
the respective kernel release version as a tag to the Cc: stable line.
I couldn't reproduce the full lockdep splat on my setup, but at least
could show one instance and prove that these patches fixes that.
Thanks to Jan for reporting.
Cheers,
Andre.
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2018-May/575718.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2018-May/575833.html
Andre Przywara (4):
KVM: ARM: Properly protect VGIC locks from IRQs
KVM: ARM: VGIC/ITS: Promote irq_lock() in update_affinity
KVM: arm/arm64: VGIC/ITS: protect kvm_read_guest() calls with SRCU lock
KVM: arm/arm64: VGIC/ITS save/restore: protect kvm_read_guest() calls
arch/arm/include/asm/kvm_mmu.h | 16 ++++++++++++++++
arch/arm64/include/asm/kvm_mmu.h | 16 ++++++++++++++++
virt/kvm/arm/vgic/vgic-debug.c | 5 +++--
virt/kvm/arm/vgic/vgic-its.c | 34 +++++++++++++++++++---------------
virt/kvm/arm/vgic/vgic-v3.c | 4 ++--
virt/kvm/arm/vgic/vgic.c | 22 ++++++++++++++--------
6 files changed, 70 insertions(+), 27 deletions(-)
--
2.14.1
next reply other threads:[~2018-05-11 14:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-11 14:20 Andre Przywara [this message]
2018-05-11 14:20 ` [PATCH 1/4] KVM: arm/arm64: Properly protect VGIC locks from IRQs Andre Przywara
2018-05-11 14:20 ` [PATCH 2/4] KVM: arm/arm64: VGIC/ITS: Promote irq_lock() in update_affinity Andre Przywara
2018-05-11 14:20 ` [PATCH 3/4] KVM: arm/arm64: VGIC/ITS: protect kvm_read_guest() calls with SRCU lock Andre Przywara
2018-05-11 14:20 ` [PATCH 4/4] KVM: arm/arm64: VGIC/ITS save/restore: protect kvm_read_guest() calls Andre Przywara
2018-05-15 10:26 ` [PATCH 0/4] KVM: arm/arm64: Fix locking issues Christoffer Dall
2018-05-15 11:35 ` Paolo Bonzini
2018-05-15 11:54 ` Marc Zyngier
2018-05-15 12:05 ` 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=20180511142015.21953-1-andre.przywara@arm.com \
--to=andre.przywara@arm.com \
--cc=linux-arm-kernel@lists.infradead.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