KVM: arm64: selftests: Add support for cpu_relax
authorRaghavendra Rao Ananta <rananta@google.com>
Thu, 7 Oct 2021 23:34:29 +0000 (23:34 +0000)
committerMarc Zyngier <maz@kernel.org>
Sun, 17 Oct 2021 10:17:20 +0000 (11:17 +0100)
Implement the guest helper routine, cpu_relax(), to yield
the processor to other tasks.

The function was derived from
arch/arm64/include/asm/vdso/processor.h.

Signed-off-by: Raghavendra Rao Ananta <rananta@google.com>
Reviewed-by: Oliver Upton <oupton@google.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211007233439.1826892-6-rananta@google.com
tools/testing/selftests/kvm/include/aarch64/processor.h

index 9379778..265054c 100644 (file)
@@ -122,6 +122,11 @@ void vm_install_exception_handler(struct kvm_vm *vm,
 void vm_install_sync_handler(struct kvm_vm *vm,
                int vector, int ec, handler_fn handler);
 
+static inline void cpu_relax(void)
+{
+       asm volatile("yield" ::: "memory");
+}
+
 #define isb()          asm volatile("isb" : : : "memory")
 #define dsb(opt)       asm volatile("dsb " #opt : : : "memory")
 #define dmb(opt)       asm volatile("dmb " #opt : : : "memory")