On Thu, 2023-06-08 at 16:56 -0700, Dave Hansen wrote: > On 6/4/23 07:27, Kai Huang wrote: > > +There is no CPUID or MSR to detect the TDX module. The kernel detects it > > +by initializing it. > > Is this really what you want to say? > > If the module is there, SEAMCALL works. If not, it doesn't. The module > is assumed to be there when SEAMCALL works. Right? > > Yeah, that first SEAMCALL is probably an initialization call, but feel > like that's beside the point. Thanks for reviewing the documentation. I guess I don't need to mention the "detection" part at all? -TDX module detection and initialization +TDX module initialization --------------------------------------- -There is no CPUID or MSR to detect the TDX module. The kernel detects it -by initializing it. - The kernel talks to the TDX module via the new SEAMCALL instruction. The TDX module implements SEAMCALL leaf functions to allow the kernel to initialize it. +If the TDX module isn't loaded, the SEAMCALL instruction fails with a +special error. In this case the kernel fails the module initialization +and reports the module isn't loaded:: + + [..] tdx: Module isn't loaded.