Re: [PATCHv2 14/29] x86/tdx: Early boot handling of port I/O

From: Borislav Petkov
Date: Wed Feb 02 2022 - 05:09:51 EST


On Mon, Jan 24, 2022 at 06:02:00PM +0300, Kirill A. Shutemov wrote:
> Subject: Re: [PATCHv2 14/29] x86/tdx: Early boot handling of port I/O

The condensed patch description in the subject line should start with a
uppercase letter and should be written in imperative tone:

... Handle early boot port I/O

or so.

> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> TDX guests cannot do port I/O directly. The TDX module triggers a #VE
> exception to let the guest kernel emulate port I/O, by converting them

s/,//

> into TDCALLs to call the host.
>
> But before IDT handlers are set up, port I/O cannot be emulated using
> normal kernel #VE handlers. To support the #VE-based emulation during
> this boot window, add a minimal early #VE handler support in early
> exception handlers. This is similar to what AMD SEV does. This is
> mainly to support earlyprintk's serial driver, as well as potentially
> the VGA driver (although it is expected not to be used).

expectations, shmexpectations...

...

> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
> index 1cb6346ec3d1..76d298ddfe75 100644
> --- a/arch/x86/kernel/head64.c
> +++ b/arch/x86/kernel/head64.c
> @@ -417,6 +417,9 @@ void __init do_early_exception(struct pt_regs *regs, int trapnr)
> trapnr == X86_TRAP_VC && handle_vc_boot_ghcb(regs))
> return;
>


if (IS_ENABLED(CONFIG_INTEL_TDX_GUEST)) &&

> + if (trapnr == X86_TRAP_VE && tdx_early_handle_ve(regs))
> + return;
> +
> early_fixup_exception(regs, trapnr);

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette