diff options
author | Marc Zyngier <maz@kernel.org> | 2023-02-24 19:16:40 +0000 |
---|---|---|
committer | Oliver Upton <oliver.upton@linux.dev> | 2023-03-11 02:00:40 -0800 |
commit | 47053904e18282af4525a02e3e0f519f014fc7f9 (patch) | |
tree | e9d4feddbfbdd7ad801b6bbde0c4c5de9edbf76e /tools/net/ynl/lib/ynl.py | |
parent | fe15c26ee26efa11741a7b632e9f23b01aca4cc6 (diff) |
KVM: arm64: timers: Convert per-vcpu virtual offset to a global value
Having a per-vcpu virtual offset is a pain. It needs to be synchronized
on each update, and expands badly to a setup where different timers can
have different offsets, or have composite offsets (as with NV).
So let's start by replacing the use of the CNTVOFF_EL2 shadow register
(which we want to reclaim for NV anyway), and make the virtual timer
carry a pointer to a VM-wide offset.
This simplifies the code significantly. It also addresses two terrible bugs:
- The use of CNTVOFF_EL2 leads to some nice offset corruption
when the sysreg gets reset, as reported by Joey.
- The kvm mutex is taken from a vcpu ioctl, which goes against
the locking rules...
Reported-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230224173915.GA17407@e124191.cambridge.arm.com
Tested-by: Joey Gouly <joey.gouly@arm.com>
Link: https://lore.kernel.org/r/20230224191640.3396734-1-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Diffstat (limited to 'tools/net/ynl/lib/ynl.py')
0 files changed, 0 insertions, 0 deletions