KVM: arm64: Print warning when cpu erratum can cause guests to deadlock
authorRob Herring <robh@kernel.org>
Mon, 3 Aug 2020 19:31:25 +0000 (13:31 -0600)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 21 Aug 2020 11:23:09 +0000 (12:23 +0100)
If guests don't have certain CPU erratum workarounds implemented, then
there is a possibility a guest can deadlock the system. IOW, only trusted
guests should be used on systems with the erratum.

This is the case for Cortex-A57 erratum 832075.

Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: kvmarm@lists.cs.columbia.edu
Link: https://lore.kernel.org/r/20200803193127.3012242-2-robh@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kvm/arm.c

index 691d21e4c717e19821dc843818496a69509493ad..46dc3d75cf1359f0d128dfef9fe98f82caccc82d 100644 (file)
@@ -1640,6 +1640,10 @@ int kvm_arch_init(void *opaque)
                return -ENODEV;
        }
 
+       if (cpus_have_final_cap(ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE))
+               kvm_info("Guests without required CPU erratum workarounds can deadlock system!\n" \
+                        "Only trusted guests should be used on this system.\n");
+
        for_each_online_cpu(cpu) {
                smp_call_function_single(cpu, check_kvm_target_cpu, &ret, 1);
                if (ret < 0) {