On 4/5/22 9:49 PM, Kai Huang wrote:
Logical-cpu scope initialization requires calling TDH.SYS.LP.INIT on all BIOS-enabled cpus, otherwise the TDH.SYS.CONFIG SEAMCALL will fail.
IIUC, this change handles logical CPU initialization part of TDX module initialization. So why talk about TDH.SYS.CONFIG failure here? Are they related?
TDH.SYS.LP.INIT can be called concurrently on all cpus.
IMO, if you move the following paragraph to the beginning, it is easier to understand "what" and "why" part of this change.
Following global initialization, do the logical-cpu scope initialization by calling TDH.SYS.LP.INIT on all online cpus. Whether all BIOS-enabled cpus are online is not checked here for simplicity. The caller of tdx_init() should guarantee all BIOS-enabled cpus are online.
Include specification reference for TDX module initialization and TDH.SYS.LP.INIT. In TDX module spec, section 22.2.35 (TDH.SYS.LP.INIT Leaf), mentions some environment requirements. I don't see you checking here for it? Is this already met? -- Sathyanarayanan Kuppuswamy Linux Kernel Developer