Messages in this thread | | | From | Marc Orr <> | Date | Thu, 17 Nov 2022 13:23:08 -0800 | Subject | Re: [PATCH v2 RESEND] x86/asm: Force native_apic_mem_read to use mov |
| |
On Wed, Oct 5, 2022 at 6:29 AM Tom Lendacky <thomas.lendacky@amd.com> wrote: > > On 10/3/22 18:11, H. Peter Anvin wrote: > > On October 3, 2022 4:01:01 PM PDT, Adam Dunlap <acdunlap@google.com> wrote: > >> Thanks for all the responses. Is the consensus that we should use the > >> readl function here or instead use inline assembly directly as in the patch > >> I originally sent out: > >> > >> asm_inline("movl %1, %0" : "=r"(out) : "m"(*addr)); > >> > >> ? The readl function has this exact same code, I'm just not sure > >> which version fits better stylistically. > > > > Is mov with an arbitrary addressing mode still acceptable for whatever is causing this problem? > > The acceptable forms of MOV are covered by insn_decode_mmio() in > arch/x86/lib/insn-eval.c.
Is this blocked on an item? There seems to be consensus that this patch fixes a bug and is taking the right high-level approach (i.e., change the guest code to avoid triggering a sequence that isn't supported under CVM exception-based emulation). Without something like this, we weren't able to build the kernel w/ CLANG when it is configured to run under SEV-ES.
We sent out two versions of the patch. One that does the mov directly [1] and a second that calls readl [2]. Is one of these two patches acceptable? Or do we need to follow up on something?
[1] https://lore.kernel.org/lkml/0D6A1E49-F21B-42AA-BBBF-13BFC308BB1E@zytor.com/T/ [2] https://lore.kernel.org/all/20220812183501.3555820-1-acdunlap@google.com/
Thanks, Marc
| |