Re: [RFC v2-fix 1/1] x86/tdx: Handle in-kernel MMIO

From: Andi Kleen
Date: Tue May 18 2021 - 12:10:39 EST

For now we only handle a subset of instructions that the kernel
uses for MMIO operations. User-space access triggers SIGBUS.
How do you know which instructions the kernel uses?
They're all in MMIO macros.
I've heard exactly the opposite from the TDX team in the past. What I
remember was a claim that one can not just leverage the MMIO macros as a
single point to avoid MMIO. I remember being told that not all code in
the kernel that does MMIO uses these macros. APIC MMIO's were called
out as a place that does not use the MMIO macros.

Yes x86 APIC has its own macros, but we don't use the MMIO based APIC, only X2APIC in TDX.

I'm not aware of any other places that would do MMIO without using the standard io.h macros, although it might happen in theory on x86 (but would likely break on some other architectures)