Messages in this thread | | | Date | Thu, 17 Nov 2022 00:53:05 +0000 | From | Oliver Upton <> | Subject | Re: [PATCH 2/2] KVM: arm64: selftests: Disable single-step without relying on ucall() |
| |
On Thu, Nov 17, 2022 at 12:23:50AM +0000, Sean Christopherson wrote: > 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.
Off topic, but I didn't ask when we were discussing this issue. What is the atomic used for in the pool-based ucall implementation?
> 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 VM-Exit for the debug > exception.
... due to the debug exception taken to EL2.
What's a VM-Exit anyways? ;-)
> 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>
With the commit message nit:
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
-- Thanks, Oliver
| |