summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/kvm/lib/ucall_common.c
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2022-11-17 00:23:50 +0000
committerSean Christopherson <seanjc@google.com>2022-11-16 16:58:14 -0800
commitb3d937722de0e64eebe267451a0e3d5ed5107ef7 (patch)
tree3cdbb3d248ebdbfdf8e624fb70e780bb8f5a7218 /tools/testing/selftests/kvm/lib/ucall_common.c
parent1cec8bbc1764964de24d19983fbf9fee6ce3c09d (diff)
KVM: arm64: selftests: Disable single-step without relying on ucall()
Automatically disable single-step when the guest reaches the end of the verified section instead of using an explicit ucall() to ask userspace to disable single-step. An upcoming change to implement a pool-based scheme for ucall() will add an atomic operation (bit test and set) in the guest ucall code, and if the compiler generate "old school" atomics, e.g. 40e57c: c85f7c20 ldxr x0, [x1] 40e580: aa100011 orr x17, x0, x16 40e584: c80ffc31 stlxr w15, x17, [x1] 40e588: 35ffffaf cbnz w15, 40e57c <__aarch64_ldset8_sync+0x1c> the guest will hang as the local exclusive monitor is reset by eret, i.e. the stlxr will always fail due to the debug exception taken to EL2. Link: https://lore.kernel.org/all/20221006003409.649993-8-seanjc@google.com Cc: Oliver Upton <oliver.upton@linux.dev> Cc: Marc Zyngier <maz@kernel.org> Signed-off-by: Sean Christopherson <seanjc@google.com> Link: https://lore.kernel.org/r/20221117002350.2178351-3-seanjc@google.com Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Diffstat (limited to 'tools/testing/selftests/kvm/lib/ucall_common.c')
0 files changed, 0 insertions, 0 deletions