diff options
author | Oliver Upton <oliver.upton@linux.dev> | 2023-03-27 16:47:47 +0000 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2023-03-29 14:08:31 +0100 |
commit | f00327731131d1b5aa6a1aa9f50bcf8d620ace4c (patch) | |
tree | 54a48d77f7e49b0e2d4635b664e8a8623cdc6604 /tools/perf/scripts/python/exported-sql-viewer.py | |
parent | 4bba7f7def6f278266dadf845da472cfbfed784e (diff) |
KVM: arm64: Use config_lock to protect vgic state
Almost all of the vgic state is VM-scoped but accessed from the context
of a vCPU. These accesses were serialized on the kvm->lock which cannot
be nested within a vcpu->mutex critical section.
Move over the vgic state to using the config_lock. Tweak the lock
ordering where necessary to ensure that the config_lock is acquired
after the vcpu->mutex. Acquire the config_lock in kvm_vgic_create() to
avoid a race between the converted flows and GIC creation. Where
necessary, continue to acquire kvm->lock to avoid a race with vCPU
creation (i.e. flows that use lock_all_vcpus()).
Finally, promote the locking expectations in comments to lockdep
assertions and update the locking documentation for the config_lock as
well as vcpu->mutex.
Cc: stable@vger.kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230327164747.2466958-5-oliver.upton@linux.dev
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions