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

From: Marc Zyngier
Date: Wed Jul 12 2023 - 03:30:21 EST


On Wed, 12 Jul 2023 03:47:55 +0100,
"Aiqun(Maria) Yu" <quic_aiquny@xxxxxxxxxxx> wrote:
>
> On 7/11/2023 6:38 PM, Marc Zyngier wrote:
> > 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
> The guest also can have the current linux kernel mechanism of LSE
> ATOMIC way.

[snip useless diagrams]

Yes, the guest can do the right thing. The guest, a totally
unprivileged piece of SW, can also ignore the idregs and take the
whole machine down because your HW is broken.

> Just like other KVM vcpu cpu features, lse atomic can be a feature
> inherit from the pysical cpu features for the KVM vcpus.

See above. Your reasoning applies to a well behaved guest, which is
the *wrong* way to reason about these things.

M.

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