lkml.org 
[lkml]   [2022]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCHv2 14/29] x86/tdx: Early boot handling of port I/O
    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@linux.intel.com>
    >
    > 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

    \
     
     \ /
      Last update: 2022-02-02 11:10    [W:4.037 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site