lkml.org 
[lkml]   [2022]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 20/21] x86/virt/tdx: Add kernel command line to opt-in TDX host support
    Date
    Enabling TDX consumes additional memory (used by TDX as metadata) and
    additional initialization time. Introduce a kernel command line to
    allow to opt-in TDX host kernel support when user truly wants to use
    TDX.

    Signed-off-by: Kai Huang <kai.huang@intel.com>
    ---
    Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
    arch/x86/virt/vmx/tdx/tdx.c | 14 ++++++++++++++
    2 files changed, 20 insertions(+)

    diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
    index 3f1cc5e317ed..cfa5b36890ea 100644
    --- a/Documentation/admin-guide/kernel-parameters.txt
    +++ b/Documentation/admin-guide/kernel-parameters.txt
    @@ -5790,6 +5790,12 @@

    tdfx= [HW,DRM]

    + tdx_host= [X86-64, TDX]
    + Format: {on|off}
    + on: Enable TDX host kernel support
    + off: Disable TDX host kernel support
    + Default is off.
    +
    test_suspend= [SUSPEND][,N]
    Specify "mem" (for Suspend-to-RAM) or "standby" (for
    standby suspend) or "freeze" (for suspend type freeze)
    diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c
    index 031af7b83cea..fee243cd454f 100644
    --- a/arch/x86/virt/vmx/tdx/tdx.c
    +++ b/arch/x86/virt/vmx/tdx/tdx.c
    @@ -116,6 +116,16 @@ static struct tdsysinfo_struct tdx_sysinfo;
    /* TDX global KeyID to protect TDX metadata */
    static u32 tdx_global_keyid;

    +static bool enable_tdx_host;
    +
    +static int __init tdx_host_setup(char *s)
    +{
    + if (!strcmp(s, "on"))
    + enable_tdx_host = true;
    + return 1;
    +}
    +__setup("tdx_host=", tdx_host_setup);
    +
    static bool __seamrr_enabled(void)
    {
    return (seamrr_mask & SEAMRR_ENABLED_BITS) == SEAMRR_ENABLED_BITS;
    @@ -500,6 +510,10 @@ static int detect_p_seamldr(void)

    static int __tdx_detect(void)
    {
    + /* Disabled by kernel command line */
    + if (!enable_tdx_host)
    + goto no_tdx_module;
    +
    /* The TDX module is not loaded if SEAMRR is disabled */
    if (!seamrr_enabled()) {
    pr_info("SEAMRR not enabled.\n");
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-04-06 09:14    [W:4.054 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site