From: Isaku Yamahata <isaku.yamahata@gmail.com>
To: Kai Huang <kai.huang@intel.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
linux-mm@kvack.org, dave.hansen@intel.com, peterz@infradead.org,
tglx@linutronix.de, seanjc@google.com, pbonzini@redhat.com,
dan.j.williams@intel.com, rafael.j.wysocki@intel.com,
kirill.shutemov@linux.intel.com, ying.huang@intel.com,
reinette.chatre@intel.com, len.brown@intel.com,
tony.luck@intel.com, ak@linux.intel.com,
isaku.yamahata@intel.com, chao.gao@intel.com,
sathyanarayanan.kuppuswamy@linux.intel.com, david@redhat.com,
bagasdotme@gmail.com, sagis@google.com, imammedo@redhat.com,
isaku.yamahata@gmail.com
Subject: Re: [PATCH v10 00/16] TDX host kernel support
Date: Tue, 7 Mar 2023 17:11:42 -0800 [thread overview]
Message-ID: <20230308011142.GA2841114@ls.amr.corp.intel.com> (raw)
In-Reply-To: <cover.1678111292.git.kai.huang@intel.com>
On Tue, Mar 07, 2023 at 03:13:45AM +1300,
Kai Huang <kai.huang@intel.com> wrote:
> Intel Trusted Domain Extensions (TDX) protects guest VMs from malicious
> host and certain physical attacks. TDX specs are available in [1].
>
> This series is the initial support to enable TDX with minimal code to
> allow KVM to create and run TDX guests. KVM support for TDX is being
> developed separately[2]. A new "userspace inaccessible memfd" approach
> to support TDX private memory is also being developed[3]. The KVM will
> only support the new "userspace inaccessible memfd" as TDX guest memory.
>
> This series doesn't aim to support all functionalities, and doesn't aim
> to resolve all things perfectly. For example, memory hotplug is handled
> in simple way (please refer to "Kernel policy on TDX memory" and "Memory
> hotplug" sections below).
>
> (For memory hotplug, sorry for broadcasting widely but I cc'ed the
> linux-mm@kvack.org following Kirill's suggestion so MM experts can also
> help to provide comments.)
>
> And TDX module metadata allocation just uses alloc_contig_pages() to
> allocate large chunk at runtime, thus it can fail. It is imperfect now
> but _will_ be improved in the future.
>
> Also, the patch to add the new kernel comline tdx="force" isn't included
> in this initial version, as Dave suggested it isn't mandatory. But I
> _will_ add one once this initial version gets merged.
>
> All other optimizations will be posted as follow-up once this initial
> TDX support is upstreamed.
>
> Hi Dave, Peter, Thomas, Dan (and Intel reviewers),
>
> The environment to test the new LP.INIT SEAMCALL behaviour hasn't been
> done yet, thus I haven't tested the new behaviour. Instead, I tested
> with all cpus are online when initializing the TDX module. CPU hotplug
> path isn't really tested although I did some basic test that I can
> offline some cpus after module initialization, online them again and the
> LP.INIT was skipped successfully for them.
>
> However I believe there should be no issue when the new module is ready.
> I will test and report back when the new module is ready.
>
> I would appreciate if folks could review this presumptive series anyway.
>
> And I would appreciate reviewed-by or acked-by tags if the patches look
> good to you.
>
> ----- Changelog history: ------
>
> - v9 -> v10:
>
> - Changed the per-cpu initalization handling
> - Gave up "ensuring all online cpus are TDX-runnable when TDX module
> is initialized", but just provide two basic functions, tdx_enable()
> and tdx_cpu_enable(), to let the user of TDX to make sure the
> tdx_cpu_enable() has been done successfully when the user wants to
> use particular cpu for TDX.
> - Thus, moved per-cpu initialization out of tdx_enable(). Now
> tdx_enable() just assumes VMXON and tdx_cpu_enable() has been done
> on all online cpus before calling it.
> - Merged the tdx_enable() skeleton patch and per-cpu initialization
> patch together to tell better story.
> - Moved "SEAMCALL infrastructure" patch before the tdx_enable() patch.
>
> v9: https://lore.kernel.org/lkml/cover.1676286526.git.kai.huang@intel.com/
>
> - v8 -> v9:
>
> - Added patches to handle TDH.SYS.INIT and TDH.SYS.LP.INIT back.
> - Other changes please refer to changelog histroy in individual patches.
I've rebased my TDX KVM patches to this patch series and updated initialization.
With all LPs online with the existing TDX module and I did cpu online/offline
while TD running.
Test-by: Isaku Yamahata <isaku.yamahata@intel.com>
--
Isaku Yamahata <isaku.yamahata@gmail.com>
next prev parent reply other threads:[~2023-03-08 1:11 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 14:13 Kai Huang
2023-03-06 14:13 ` [PATCH v10 01/16] x86/tdx: Define TDX supported page sizes as macros Kai Huang
2023-03-16 12:37 ` David Hildenbrand
2023-03-16 22:41 ` Huang, Kai
2023-03-06 14:13 ` [PATCH v10 02/16] x86/virt/tdx: Detect TDX during kernel boot Kai Huang
2023-03-16 12:48 ` David Hildenbrand
2023-03-16 22:37 ` Huang, Kai
2023-03-23 17:02 ` David Hildenbrand
2023-03-23 22:15 ` Huang, Kai
2023-03-06 14:13 ` [PATCH v10 03/16] x86/virt/tdx: Make INTEL_TDX_HOST depend on X86_X2APIC Kai Huang
2023-03-16 12:57 ` David Hildenbrand
2023-03-06 14:13 ` [PATCH v10 04/16] x86/virt/tdx: Add SEAMCALL infrastructure Kai Huang
2023-03-06 14:13 ` [PATCH v10 05/16] x86/virt/tdx: Add skeleton to enable TDX on demand Kai Huang
2023-03-08 22:27 ` Isaku Yamahata
2023-03-12 23:08 ` Huang, Kai
2023-03-13 23:49 ` Isaku Yamahata
2023-03-14 1:50 ` Huang, Kai
2023-03-14 4:02 ` Isaku Yamahata
2023-03-14 5:45 ` Dave Hansen
2023-03-14 17:16 ` Isaku Yamahata
2023-03-14 17:38 ` Dave Hansen
2023-03-14 15:48 ` Dave Hansen
2023-03-15 11:10 ` Huang, Kai
2023-03-16 22:07 ` Huang, Kai
2023-03-23 13:49 ` Dave Hansen
2023-03-23 22:09 ` Huang, Kai
2023-03-23 22:12 ` Dave Hansen
2023-03-23 22:42 ` Huang, Kai
2023-03-16 0:31 ` Isaku Yamahata
2023-03-16 2:45 ` Isaku Yamahata
2023-03-16 2:52 ` Huang, Kai
2023-03-06 14:13 ` [PATCH v10 06/16] x86/virt/tdx: Get information about TDX module and TDX-capable memory Kai Huang
2023-03-06 14:13 ` [PATCH v10 07/16] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Kai Huang
2023-03-09 1:38 ` Isaku Yamahata
2023-03-06 14:13 ` [PATCH v10 08/16] x86/virt/tdx: Add placeholder to construct TDMRs to cover all TDX memory regions Kai Huang
2023-03-06 14:13 ` [PATCH v10 09/16] x86/virt/tdx: Fill out " Kai Huang
2023-03-06 14:13 ` [PATCH v10 10/16] x86/virt/tdx: Allocate and set up PAMTs for TDMRs Kai Huang
2023-03-21 7:44 ` Dong, Eddie
2023-03-21 8:05 ` Huang, Kai
2023-03-06 14:13 ` [PATCH v10 11/16] x86/virt/tdx: Designate reserved areas for all TDMRs Kai Huang
2023-03-06 14:13 ` [PATCH v10 12/16] x86/virt/tdx: Configure TDX module with the TDMRs and global KeyID Kai Huang
2023-03-06 14:13 ` [PATCH v10 13/16] x86/virt/tdx: Configure global KeyID on all packages Kai Huang
2023-03-06 14:13 ` [PATCH v10 14/16] x86/virt/tdx: Initialize all TDMRs Kai Huang
2023-03-06 14:14 ` [PATCH v10 15/16] x86/virt/tdx: Flush cache in kexec() when TDX is enabled Kai Huang
2023-03-06 14:14 ` [PATCH v10 16/16] Documentation/x86: Add documentation for TDX host support Kai Huang
2023-03-08 1:11 ` Isaku Yamahata [this message]
2023-03-16 12:35 ` [PATCH v10 00/16] TDX host kernel support David Hildenbrand
2023-03-16 22:06 ` Huang, Kai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230308011142.GA2841114@ls.amr.corp.intel.com \
--to=isaku.yamahata@gmail.com \
--cc=ak@linux.intel.com \
--cc=bagasdotme@gmail.com \
--cc=chao.gao@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@intel.com \
--cc=david@redhat.com \
--cc=imammedo@redhat.com \
--cc=isaku.yamahata@intel.com \
--cc=kai.huang@intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael.j.wysocki@intel.com \
--cc=reinette.chatre@intel.com \
--cc=sagis@google.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=ying.huang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox