Re: [PATCH] arm64: Add the arm64.nolse_atomics command line option

From: Marc Zyngier
Date: Tue Jul 11 2023 - 06:38:35 EST


On Tue, 11 Jul 2023 11:12:48 +0100,
"Aiqun(Maria) Yu" <quic_aiquny@xxxxxxxxxxx> wrote:
>
> For the KVM part, per my understanding, as long as the current feature
> id being overriden, the KVM system also get the current vcpu without
> the lse atomic feature enabled.
> KVM vcpu will read the sys reg from host arm64_ftr_regs which is
> already been controled by the idreg_overrides.

You're completely missing the point.

The guest is free to map memory as non-cacheable *and* to use LSE
atomics even if the idregs pretend this is not available. At which
point the HW throws a fit and the system is dead. Is that acceptable?
Of course not.

So there are two aspects to your problem:

- for Linux, there is nothing to do: the kernel will correctly behave,
and as long as you don't expose non-cacheable memory to userspace.
Out of tree drivers are none of our concern here.

- for guests, it looks like the HW doesn't provide the basic
requirements for virtualisation, and you should always disable KVM
on this HW (or even better, enter the kernel at EL1).

In both cases, nothing to do in the kernel, which is good news.

M.

--
Without deviation from the norm, progress is not possible.