linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
  • * Re: [PATCH v11 02/20] x86/virt/tdx: Detect TDX during kernel boot
           [not found] ` <af4e428ab1245e9441031438e606c14472daf927.1685887183.git.kai.huang@intel.com>
           [not found]   ` <a2da8af2-41a9-a0cf-dbe9-7f0a14bf05fe@linux.intel.com>
    @ 2023-06-06 23:44   ` Isaku Yamahata
      2023-06-19 12:12   ` David Hildenbrand
      2 siblings, 0 replies; 144+ messages in thread
    From: Isaku Yamahata @ 2023-06-06 23:44 UTC (permalink / raw)
      To: Kai Huang
      Cc: linux-kernel, kvm, linux-mm, dave.hansen, kirill.shutemov,
    	tony.luck, peterz, tglx, seanjc, pbonzini, david, dan.j.williams,
    	rafael.j.wysocki, ying.huang, reinette.chatre, len.brown, ak,
    	isaku.yamahata, chao.gao, sathyanarayanan.kuppuswamy, bagasdotme,
    	sagis, imammedo, isaku.yamahata
    
    On Mon, Jun 05, 2023 at 02:27:15AM +1200,
    Kai Huang <kai.huang@intel.com> wrote:
    > diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c
    > new file mode 100644
    > index 000000000000..2d91e7120c90
    > --- /dev/null
    > +++ b/arch/x86/virt/vmx/tdx/tdx.c
    > @@ -0,0 +1,92 @@
    > +// SPDX-License-Identifier: GPL-2.0
    > +/*
    > + * Copyright(c) 2023 Intel Corporation.
    > + *
    > + * Intel Trusted Domain Extensions (TDX) support
    > + */
    > +
    > +#define pr_fmt(fmt)	"tdx: " fmt
    > +
    > +#include <linux/types.h>
    > +#include <linux/cache.h>
    > +#include <linux/init.h>
    > +#include <linux/errno.h>
    > +#include <linux/printk.h>
    > +#include <asm/msr-index.h>
    > +#include <asm/msr.h>
    > +#include <asm/tdx.h>
    > +
    > +static u32 tdx_global_keyid __ro_after_init;
    > +static u32 tdx_guest_keyid_start __ro_after_init;
    > +static u32 tdx_nr_guest_keyids __ro_after_init;
    > +
    > +static int __init record_keyid_partitioning(u32 *tdx_keyid_start,
    > +					    u32 *nr_tdx_keyids)
    > +{
    > +	u32 _nr_mktme_keyids, _tdx_keyid_start, _nr_tdx_keyids;
    > +	int ret;
    > +
    > +	/*
    > +	 * IA32_MKTME_KEYID_PARTIONING:
    > +	 *   Bit [31:0]:	Number of MKTME KeyIDs.
    > +	 *   Bit [63:32]:	Number of TDX private KeyIDs.
    > +	 */
    > +	ret = rdmsr_safe(MSR_IA32_MKTME_KEYID_PARTITIONING, &_nr_mktme_keyids,
    > +			&_nr_tdx_keyids);
    > +	if (ret)
    > +		return -ENODEV;
    > +
    > +	if (!_nr_tdx_keyids)
    > +		return -ENODEV;
    > +
    > +	/* TDX KeyIDs start after the last MKTME KeyID. */
    > +	_tdx_keyid_start = _nr_mktme_keyids + 1;
    > +
    > +	*tdx_keyid_start = _tdx_keyid_start;
    > +	*nr_tdx_keyids = _nr_tdx_keyids;
    > +
    > +	return 0;
    > +}
    > +
    > +static int __init tdx_init(void)
    > +{
    > +	u32 tdx_keyid_start, nr_tdx_keyids;
    > +	int err;
    > +
    > +	err = record_keyid_partitioning(&tdx_keyid_start, &nr_tdx_keyids);
    > +	if (err)
    > +		return err;
    > +
    > +	pr_info("BIOS enabled: private KeyID range [%u, %u)\n",
    > +			tdx_keyid_start, tdx_keyid_start + nr_tdx_keyids);
    > +
    > +	/*
    > +	 * The TDX module itself requires one 'global KeyID' to protect
    > +	 * its metadata.  If there's only one TDX KeyID, there won't be
    > +	 * any left for TDX guests thus there's no point to enable TDX
    > +	 * at all.
    > +	 */
    > +	if (nr_tdx_keyids < 2) {
    > +		pr_info("initialization failed: too few private KeyIDs available.\n");
    
    Because this case is against the admin expectation, pr_warn() or pr_err()?
    Except that, looks good to me
    Reviewed-by: Isaku Yamahata <isaku.yamahata@intel.com>
    -- 
    Isaku Yamahata <isaku.yamahata@gmail.com>
    
    
    ^ permalink raw reply	[flat|nested] 144+ messages in thread
  • * Re: [PATCH v11 02/20] x86/virt/tdx: Detect TDX during kernel boot
           [not found] ` <af4e428ab1245e9441031438e606c14472daf927.1685887183.git.kai.huang@intel.com>
           [not found]   ` <a2da8af2-41a9-a0cf-dbe9-7f0a14bf05fe@linux.intel.com>
      2023-06-06 23:44   ` Isaku Yamahata
    @ 2023-06-19 12:12   ` David Hildenbrand
      2023-06-19 23:58     ` Huang, Kai
      2 siblings, 1 reply; 144+ messages in thread
    From: David Hildenbrand @ 2023-06-19 12:12 UTC (permalink / raw)
      To: Kai Huang, linux-kernel, kvm
      Cc: linux-mm, dave.hansen, kirill.shutemov, tony.luck, peterz, tglx,
    	seanjc, pbonzini, dan.j.williams, rafael.j.wysocki, ying.huang,
    	reinette.chatre, len.brown, ak, isaku.yamahata, chao.gao,
    	sathyanarayanan.kuppuswamy, bagasdotme, sagis, imammedo
    
    On 04.06.23 16:27, Kai Huang wrote:
    > Intel Trust Domain Extensions (TDX) protects guest VMs from malicious
    > host and certain physical attacks.  A CPU-attested software module
    > called 'the TDX module' runs inside a new isolated memory range as a
    > trusted hypervisor to manage and run protected VMs.
    > 
    > Pre-TDX Intel hardware has support for a memory encryption architecture
    > called MKTME.  The memory encryption hardware underpinning MKTME is also
    > used for Intel TDX.  TDX ends up "stealing" some of the physical address
    > space from the MKTME architecture for crypto-protection to VMs.  The
    > BIOS is responsible for partitioning the "KeyID" space between legacy
    > MKTME and TDX.  The KeyIDs reserved for TDX are called 'TDX private
    > KeyIDs' or 'TDX KeyIDs' for short.
    > 
    > TDX doesn't trust the BIOS.  During machine boot, TDX verifies the TDX
    > private KeyIDs are consistently and correctly programmed by the BIOS
    > across all CPU packages before it enables TDX on any CPU core.  A valid
    > TDX private KeyID range on BSP indicates TDX has been enabled by the
    > BIOS, otherwise the BIOS is buggy.
    > 
    > The TDX module is expected to be loaded by the BIOS when it enables TDX,
    > but the kernel needs to properly initialize it before it can be used to
    > create and run any TDX guests.  The TDX module will be initialized by
    > the KVM subsystem when KVM wants to use TDX.
    > 
    > Add a new early_initcall(tdx_init) to detect the TDX by detecting TDX
    > private KeyIDs.  Also add a function to report whether TDX is enabled by
    > the BIOS.  Similar to AMD SME, kexec() will use it to determine whether
    > cache flush is needed.
    > 
    > The TDX module itself requires one TDX KeyID as the 'TDX global KeyID'
    > to protect its metadata.  Each TDX guest also needs a TDX KeyID for its
    > own protection.  Just use the first TDX KeyID as the global KeyID and
    > leave the rest for TDX guests.  If no TDX KeyID is left for TDX guests,
    > disable TDX as initializing the TDX module alone is useless.
    > 
    > To start to support TDX, create a new arch/x86/virt/vmx/tdx/tdx.c for
    > TDX host kernel support.  Add a new Kconfig option CONFIG_INTEL_TDX_HOST
    > to opt-in TDX host kernel support (to distinguish with TDX guest kernel
    > support).  So far only KVM uses TDX.  Make the new config option depend
    > on KVM_INTEL.
    > 
    > Signed-off-by: Kai Huang <kai.huang@intel.com>
    > Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    > ---
    > 
    > v10 -> v11 (David):
    >   - "host kernel" -> "the host kernel"
    >   - "protected VM" -> "confidential VM".
    >   - Moved setting tdx_global_keyid to the end of tdx_init().
    > 
    > v9 -> v10:
    >   - No change.
    > 
    > v8 -> v9:
    >   - Moved MSR macro from local tdx.h to <asm/msr-index.h> (Dave).
    >   - Moved reserving the TDX global KeyID from later patch to here.
    >   - Changed 'tdx_keyid_start' and 'nr_tdx_keyids' to
    >     'tdx_guest_keyid_start' and 'tdx_nr_guest_keyids' to represent KeyIDs
    >     can be used by guest. (Dave)
    >   - Slight changelog update according to above changes.
    > 
    > v7 -> v8: (address Dave's comments)
    >   - Improved changelog:
    >      - "KVM user" -> "The TDX module will be initialized by KVM when ..."
    >      - Changed "tdx_int" part to "Just say what this patch is doing"
    >      - Fixed the last sentence of "kexec()" paragraph
    >    - detect_tdx() -> record_keyid_partitioning()
    >    - Improved how to calculate tdx_keyid_start.
    >    - tdx_keyid_num -> nr_tdx_keyids.
    >    - Improved dmesg printing.
    >    - Add comment to clear_tdx().
    > 
    > v6 -> v7:
    >   - No change.
    > 
    > v5 -> v6:
    >   - Removed SEAMRR detection to make code simpler.
    >   - Removed the 'default N' in the KVM_TDX_HOST Kconfig (Kirill).
    >   - Changed to use 'obj-y' in arch/x86/virt/vmx/tdx/Makefile (Kirill).
    > 
    > 
    > ---
    >   arch/x86/Kconfig                 | 12 +++++
    >   arch/x86/Makefile                |  2 +
    >   arch/x86/include/asm/msr-index.h |  3 ++
    >   arch/x86/include/asm/tdx.h       |  7 +++
    >   arch/x86/virt/Makefile           |  2 +
    >   arch/x86/virt/vmx/Makefile       |  2 +
    >   arch/x86/virt/vmx/tdx/Makefile   |  2 +
    >   arch/x86/virt/vmx/tdx/tdx.c      | 92 ++++++++++++++++++++++++++++++++
    >   8 files changed, 122 insertions(+)
    >   create mode 100644 arch/x86/virt/Makefile
    >   create mode 100644 arch/x86/virt/vmx/Makefile
    >   create mode 100644 arch/x86/virt/vmx/tdx/Makefile
    >   create mode 100644 arch/x86/virt/vmx/tdx/tdx.c
    > 
    > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    > index 53bab123a8ee..191587f75810 100644
    > --- a/arch/x86/Kconfig
    > +++ b/arch/x86/Kconfig
    > @@ -1952,6 +1952,18 @@ config X86_SGX
    >   
    >   	  If unsure, say N.
    >   
    > +config INTEL_TDX_HOST
    > +	bool "Intel Trust Domain Extensions (TDX) host support"
    > +	depends on CPU_SUP_INTEL
    > +	depends on X86_64
    > +	depends on KVM_INTEL
    > +	help
    > +	  Intel Trust Domain Extensions (TDX) protects guest VMs from malicious
    > +	  host and certain physical attacks.  This option enables necessary TDX
    > +	  support in the host kernel to run confidential VMs.
    > +
    > +	  If unsure, say N.
    > +
    >   config EFI
    >   	bool "EFI runtime service support"
    >   	depends on ACPI
    > diff --git a/arch/x86/Makefile b/arch/x86/Makefile
    > index b39975977c03..ec0e71d8fa30 100644
    > --- a/arch/x86/Makefile
    > +++ b/arch/x86/Makefile
    > @@ -252,6 +252,8 @@ archheaders:
    >   
    >   libs-y  += arch/x86/lib/
    >   
    > +core-y += arch/x86/virt/
    > +
    >   # drivers-y are linked after core-y
    >   drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/
    >   drivers-$(CONFIG_PCI)            += arch/x86/pci/
    > diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
    > index 3aedae61af4f..6d8f15b1552c 100644
    > --- a/arch/x86/include/asm/msr-index.h
    > +++ b/arch/x86/include/asm/msr-index.h
    > @@ -523,6 +523,9 @@
    >   #define MSR_RELOAD_PMC0			0x000014c1
    >   #define MSR_RELOAD_FIXED_CTR0		0x00001309
    >   
    > +/* KeyID partitioning between MKTME and TDX */
    > +#define MSR_IA32_MKTME_KEYID_PARTITIONING	0x00000087
    > +
    >   /*
    >    * AMD64 MSRs. Not complete. See the architecture manual for a more
    >    * complete list.
    > diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
    > index 25fd6070dc0b..4dfe2e794411 100644
    > --- a/arch/x86/include/asm/tdx.h
    > +++ b/arch/x86/include/asm/tdx.h
    > @@ -94,5 +94,12 @@ static inline long tdx_kvm_hypercall(unsigned int nr, unsigned long p1,
    >   	return -ENODEV;
    >   }
    >   #endif /* CONFIG_INTEL_TDX_GUEST && CONFIG_KVM_GUEST */
    > +
    > +#ifdef CONFIG_INTEL_TDX_HOST
    > +bool platform_tdx_enabled(void);
    > +#else	/* !CONFIG_INTEL_TDX_HOST */
    > +static inline bool platform_tdx_enabled(void) { return false; }
    > +#endif	/* CONFIG_INTEL_TDX_HOST */
    > +
    >   #endif /* !__ASSEMBLY__ */
    >   #endif /* _ASM_X86_TDX_H */
    > diff --git a/arch/x86/virt/Makefile b/arch/x86/virt/Makefile
    > new file mode 100644
    > index 000000000000..1e36502cd738
    > --- /dev/null
    > +++ b/arch/x86/virt/Makefile
    > @@ -0,0 +1,2 @@
    > +# SPDX-License-Identifier: GPL-2.0-only
    > +obj-y	+= vmx/
    > diff --git a/arch/x86/virt/vmx/Makefile b/arch/x86/virt/vmx/Makefile
    > new file mode 100644
    > index 000000000000..feebda21d793
    > --- /dev/null
    > +++ b/arch/x86/virt/vmx/Makefile
    > @@ -0,0 +1,2 @@
    > +# SPDX-License-Identifier: GPL-2.0-only
    > +obj-$(CONFIG_INTEL_TDX_HOST)	+= tdx/
    > diff --git a/arch/x86/virt/vmx/tdx/Makefile b/arch/x86/virt/vmx/tdx/Makefile
    > new file mode 100644
    > index 000000000000..93ca8b73e1f1
    > --- /dev/null
    > +++ b/arch/x86/virt/vmx/tdx/Makefile
    > @@ -0,0 +1,2 @@
    > +# SPDX-License-Identifier: GPL-2.0-only
    > +obj-y += tdx.o
    > diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c
    > new file mode 100644
    > index 000000000000..2d91e7120c90
    > --- /dev/null
    > +++ b/arch/x86/virt/vmx/tdx/tdx.c
    > @@ -0,0 +1,92 @@
    > +// SPDX-License-Identifier: GPL-2.0
    > +/*
    > + * Copyright(c) 2023 Intel Corporation.
    > + *
    > + * Intel Trusted Domain Extensions (TDX) support
    > + */
    > +
    > +#define pr_fmt(fmt)	"tdx: " fmt
    > +
    > +#include <linux/types.h>
    > +#include <linux/cache.h>
    > +#include <linux/init.h>
    > +#include <linux/errno.h>
    > +#include <linux/printk.h>
    > +#include <asm/msr-index.h>
    > +#include <asm/msr.h>
    > +#include <asm/tdx.h>
    > +
    > +static u32 tdx_global_keyid __ro_after_init;
    > +static u32 tdx_guest_keyid_start __ro_after_init;
    > +static u32 tdx_nr_guest_keyids __ro_after_init;
    > +
    > +static int __init record_keyid_partitioning(u32 *tdx_keyid_start,
    > +					    u32 *nr_tdx_keyids)
    > +{
    > +	u32 _nr_mktme_keyids, _tdx_keyid_start, _nr_tdx_keyids;
    > +	int ret;
    > +
    > +	/*
    > +	 * IA32_MKTME_KEYID_PARTIONING:
    > +	 *   Bit [31:0]:	Number of MKTME KeyIDs.
    > +	 *   Bit [63:32]:	Number of TDX private KeyIDs.
    > +	 */
    > +	ret = rdmsr_safe(MSR_IA32_MKTME_KEYID_PARTITIONING, &_nr_mktme_keyids,
    > +			&_nr_tdx_keyids);
    > +	if (ret)
    > +		return -ENODEV;
    > +
    > +	if (!_nr_tdx_keyids)
    > +		return -ENODEV;
    > +
    > +	/* TDX KeyIDs start after the last MKTME KeyID. */
    > +	_tdx_keyid_start = _nr_mktme_keyids + 1;
    > +
    > +	*tdx_keyid_start = _tdx_keyid_start;
    > +	*nr_tdx_keyids = _nr_tdx_keyids;
    > +
    > +	return 0;
    > +}
    > +
    > +static int __init tdx_init(void)
    > +{
    > +	u32 tdx_keyid_start, nr_tdx_keyids;
    > +	int err;
    > +
    > +	err = record_keyid_partitioning(&tdx_keyid_start, &nr_tdx_keyids);
    > +	if (err)
    > +		return err;
    > +
    > +	pr_info("BIOS enabled: private KeyID range [%u, %u)\n",
    > +			tdx_keyid_start, tdx_keyid_start + nr_tdx_keyids);
    > +
    > +	/*
    > +	 * The TDX module itself requires one 'global KeyID' to protect
    > +	 * its metadata.  If there's only one TDX KeyID, there won't be
    > +	 * any left for TDX guests thus there's no point to enable TDX
    > +	 * at all.
    > +	 */
    > +	if (nr_tdx_keyids < 2) {
    > +		pr_info("initialization failed: too few private KeyIDs available.\n");
    > +		goto no_tdx;
    > +	}
    > +
    > +	/*
    > +	 * Just use the first TDX KeyID as the 'global KeyID' and
    > +	 * leave the rest for TDX guests.
    > +	 */
    > +	tdx_global_keyid = tdx_keyid_start;
    > +	tdx_guest_keyid_start = ++tdx_keyid_start;
    > +	tdx_nr_guest_keyids = --nr_tdx_keyids;
    
    tdx_guest_keyid_start = tdx_keyid_start + 1;
    tdx_nr_guest_keyids = nr_tdx_keyids - 1;
    
    Easier to get, because the modified values are unused.
    
    I'd probably avoid the "tdx" terminology in the local variables 
    ("keid_start", "nr_keyids") to give a better hint what the global 
    variables are (tdx_*), but just a personal preference.
    
    
    
    Apart from that,
    
    Reviewed-by: David Hildenbrand <david@redhat.com>
    
    -- 
    Cheers,
    
    David / dhildenb
    
    
    
    ^ permalink raw reply	[flat|nested] 144+ messages in thread
  • [parent not found: <ec640452a4385d61bec97f8b761ed1ff38898504.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <9b3582c9f3a81ae68b32d9997fcd20baecb63b9b.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <86f2a8814240f4bbe850f6a09fc9d0b934979d1b.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <21b3a45cb73b4e1917c1eba75b7769781a15aa14.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <f9148e67e968d7aed4707b67ea9b1aa761401255.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <cee2f2664aac3c5314896c6d14cba50f2617c0e5.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <50386eddbb8046b0b222d385e56e8115ed566526.1685887183.git.kai.huang@intel.com>]
  • * RE: [PATCH v11 00/20] TDX host kernel support
           [not found] <cover.1685887183.git.kai.huang@intel.com>
                       ` (7 preceding siblings ...)
           [not found] ` <50386eddbb8046b0b222d385e56e8115ed566526.1685887183.git.kai.huang@intel.com>
    @ 2023-06-08 21:03 ` Dan Williams
      2023-06-12 10:56   ` Huang, Kai
           [not found] ` <468533166590ff5ed11730350c4af8cdb0b99165.1685887183.git.kai.huang@intel.com>
                       ` (10 subsequent siblings)
      19 siblings, 1 reply; 144+ messages in thread
    From: Dan Williams @ 2023-06-08 21:03 UTC (permalink / raw)
      To: Kai Huang, linux-kernel, kvm
      Cc: linux-mm, dave.hansen, kirill.shutemov, tony.luck, peterz, tglx,
    	seanjc, pbonzini, david, dan.j.williams, rafael.j.wysocki,
    	ying.huang, reinette.chatre, len.brown, ak, isaku.yamahata,
    	chao.gao, sathyanarayanan.kuppuswamy, bagasdotme, sagis,
    	imammedo, kai.huang
    
    Kai Huang 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 memfd approach is incompatible with one of the primary ways that
    new memory topologies like high-bandwidth-memory and CXL are accessed,
    via a device-special-file mapping. There is already precedent for mmap()
    to only be used for communicating address value and not CPU accessible
    memory. See "Userspace P2PDMA with O_DIRECT NVMe devices" [1].
    
    So before this memfd requirement becomes too baked in to the design I
    want to understand if "userspace inaccessible" is the only requirement
    so I can look to add that to the device-special-file interface for
    "device" / "Soft Reserved" memory like HBM and CXL.
    
    [1]: https://lore.kernel.org/all/20221021174116.7200-1-logang@deltatee.com/
    
    
    ^ permalink raw reply	[flat|nested] 144+ messages in thread
  • [parent not found: <468533166590ff5ed11730350c4af8cdb0b99165.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <4e108968c3294189ad150f62df1f146168036342.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <409448809f7c78191aa27d6d2970ba1384c2d464.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <4e6cd933edd2501147366df7a17e1087560a4320.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <34853e0f8f38ec2fda66b0ba480d4df63b8aab43.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <927ec9871721d2a50f1aba7d1cf7c3be50e4f49b.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <7bd7d0c6196deb58b54d6e629603775844b1307d.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <17bcbe3e154415ee7a4c77489809a3db0c5ddf3f.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <116cafb15625ac0bcda7b47143921d0c42061b69.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <5aa7506d4fedbf625e3fe8ceeb88af3be1ce97ea.1685887183.git.kai.huang@intel.com>]
  • [parent not found: <30358db4eff961c69783bbd4d9f3e50932a9a759.1685887183.git.kai.huang@intel.com>]

  • end of thread, other threads:[~2023-06-25 23:26 UTC | newest]
    
    Thread overview: 144+ messages (download: mbox.gz / follow: Atom feed)
    -- links below jump to the message on this page --
         [not found] <cover.1685887183.git.kai.huang@intel.com>
         [not found] ` <af4e428ab1245e9441031438e606c14472daf927.1685887183.git.kai.huang@intel.com>
         [not found]   ` <a2da8af2-41a9-a0cf-dbe9-7f0a14bf05fe@linux.intel.com>
    2023-06-06 22:58     ` [PATCH v11 02/20] x86/virt/tdx: Detect TDX during kernel boot Huang, Kai
    2023-06-06 23:44   ` Isaku Yamahata
    2023-06-19 12:12   ` David Hildenbrand
    2023-06-19 23:58     ` Huang, Kai
         [not found] ` <ec640452a4385d61bec97f8b761ed1ff38898504.1685887183.git.kai.huang@intel.com>
    2023-06-06 23:55   ` [PATCH v11 05/20] x86/virt/tdx: Add SEAMCALL infrastructure Isaku Yamahata
    2023-06-07 14:24   ` Dave Hansen
    2023-06-07 18:53     ` Isaku Yamahata
    2023-06-07 19:27       ` Dave Hansen
    2023-06-07 19:47         ` Isaku Yamahata
    2023-06-07 20:08           ` Sean Christopherson
    2023-06-07 20:22             ` Dave Hansen
    2023-06-08  0:51               ` Huang, Kai
    2023-06-08 13:50                 ` Dave Hansen
    2023-06-07 22:56     ` Huang, Kai
    2023-06-08 14:05       ` Dave Hansen
    2023-06-19 12:52   ` David Hildenbrand
    2023-06-20 10:37     ` Huang, Kai
    2023-06-20 12:20       ` kirill.shutemov
    2023-06-20 12:39         ` David Hildenbrand
    2023-06-20 15:15     ` Dave Hansen
         [not found] ` <9b3582c9f3a81ae68b32d9997fcd20baecb63b9b.1685887183.git.kai.huang@intel.com>
    2023-06-07  8:19   ` [PATCH v11 06/20] x86/virt/tdx: Handle SEAMCALL running out of entropy error Isaku Yamahata
    2023-06-07 15:08   ` Dave Hansen
    2023-06-07 23:36     ` Huang, Kai
    2023-06-08  0:29       ` Dave Hansen
    2023-06-08  0:08   ` kirill.shutemov
    2023-06-09 14:42   ` Nikolay Borisov
    2023-06-12 11:04     ` Huang, Kai
    2023-06-19 13:00   ` David Hildenbrand
    2023-06-20 10:39     ` Huang, Kai
    2023-06-20 11:14       ` David Hildenbrand
         [not found] ` <86f2a8814240f4bbe850f6a09fc9d0b934979d1b.1685887183.git.kai.huang@intel.com>
         [not found]   ` <20230606123821.exit7gyxs42dxotz@box.shutemov.name>
    2023-06-06 22:58     ` [PATCH v11 04/20] x86/cpu: Detect TDX partial write machine check erratum Huang, Kai
    2023-06-07 15:06       ` kirill.shutemov
    2023-06-07 14:15   ` Dave Hansen
    2023-06-07 22:43     ` Huang, Kai
    2023-06-19 11:37       ` Huang, Kai
    2023-06-20 15:44         ` Dave Hansen
    2023-06-20 23:11           ` Huang, Kai
    2023-06-19 12:21   ` David Hildenbrand
    2023-06-20 10:31     ` Huang, Kai
    2023-06-20 15:39     ` Dave Hansen
    2023-06-20 16:03       ` David Hildenbrand
    2023-06-20 16:21         ` Dave Hansen
         [not found] ` <21b3a45cb73b4e1917c1eba75b7769781a15aa14.1685887183.git.kai.huang@intel.com>
    2023-06-07 15:22   ` [PATCH v11 07/20] x86/virt/tdx: Add skeleton to enable TDX on demand Dave Hansen
    2023-06-08  2:10     ` Huang, Kai
    2023-06-08 13:43       ` Dave Hansen
    2023-06-12 11:21         ` Huang, Kai
    2023-06-19 13:16   ` David Hildenbrand
    2023-06-19 23:28     ` Huang, Kai
         [not found] ` <f9148e67e968d7aed4707b67ea9b1aa761401255.1685887183.git.kai.huang@intel.com>
    2023-06-07 15:54   ` [PATCH v11 10/20] x86/virt/tdx: Add placeholder to construct TDMRs to cover all TDX memory regions Dave Hansen
    2023-06-07 15:57   ` Dave Hansen
    2023-06-08 10:18     ` Huang, Kai
    2023-06-08 22:52   ` kirill.shutemov
    2023-06-12  2:21     ` Huang, Kai
    2023-06-12  3:01       ` Dave Hansen
         [not found] ` <cee2f2664aac3c5314896c6d14cba50f2617c0e5.1685887183.git.kai.huang@intel.com>
    2023-06-08  0:08   ` [PATCH v11 03/20] x86/virt/tdx: Make INTEL_TDX_HOST depend on X86_X2APIC kirill.shutemov
         [not found] ` <50386eddbb8046b0b222d385e56e8115ed566526.1685887183.git.kai.huang@intel.com>
    2023-06-07 15:25   ` [PATCH v11 08/20] x86/virt/tdx: Get information about TDX module and TDX-capable memory Dave Hansen
    2023-06-08  0:27   ` kirill.shutemov
    2023-06-08  2:40     ` Huang, Kai
    2023-06-08 11:41       ` kirill.shutemov
    2023-06-08 13:13         ` Dave Hansen
    2023-06-12  2:00           ` Huang, Kai
    2023-06-08 23:29         ` Isaku Yamahata
    2023-06-08 23:54           ` kirill.shutemov
    2023-06-09  1:33             ` Isaku Yamahata
    2023-06-09 10:02   ` kirill.shutemov
    2023-06-12  2:00     ` Huang, Kai
    2023-06-19 13:29   ` David Hildenbrand
    2023-06-19 23:51     ` Huang, Kai
    2023-06-08 21:03 ` [PATCH v11 00/20] TDX host kernel support Dan Williams
    2023-06-12 10:56   ` Huang, Kai
         [not found] ` <468533166590ff5ed11730350c4af8cdb0b99165.1685887183.git.kai.huang@intel.com>
    2023-06-07 15:48   ` [PATCH v11 09/20] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Dave Hansen
    2023-06-07 23:22     ` Huang, Kai
    2023-06-08 22:40   ` kirill.shutemov
         [not found] ` <4e108968c3294189ad150f62df1f146168036342.1685887183.git.kai.huang@intel.com>
    2023-06-08 23:24   ` [PATCH v11 12/20] x86/virt/tdx: Allocate and set up PAMTs for TDMRs kirill.shutemov
    2023-06-08 23:43     ` Dave Hansen
    2023-06-12  2:52       ` Huang, Kai
    2023-06-25 15:38     ` Huang, Kai
    2023-06-15  7:48   ` Nikolay Borisov
         [not found] ` <409448809f7c78191aa27d6d2970ba1384c2d464.1685887183.git.kai.huang@intel.com>
    2023-06-08 23:53   ` [PATCH v11 13/20] x86/virt/tdx: Designate reserved areas for all TDMRs kirill.shutemov
         [not found] ` <4e6cd933edd2501147366df7a17e1087560a4320.1685887183.git.kai.huang@intel.com>
    2023-06-08 23:53   ` [PATCH v11 14/20] x86/virt/tdx: Configure TDX module with the TDMRs and global KeyID kirill.shutemov
         [not found] ` <34853e0f8f38ec2fda66b0ba480d4df63b8aab43.1685887183.git.kai.huang@intel.com>
    2023-06-08 23:56   ` [PATCH v11 20/20] Documentation/x86: Add documentation for TDX host support Dave Hansen
    2023-06-12  3:41     ` Huang, Kai
    2023-06-16  9:02   ` Nikolay Borisov
    2023-06-16 16:26     ` Dave Hansen
         [not found] ` <927ec9871721d2a50f1aba7d1cf7c3be50e4f49b.1685887183.git.kai.huang@intel.com>
    2023-06-07 16:05   ` [PATCH v11 11/20] x86/virt/tdx: Fill out TDMRs to cover all TDX memory regions Dave Hansen
    2023-06-08 10:48     ` Huang, Kai
    2023-06-08 13:11       ` Dave Hansen
    2023-06-12  2:33         ` Huang, Kai
    2023-06-12 14:33           ` kirill.shutemov
    2023-06-12 22:10             ` Huang, Kai
    2023-06-13 10:18               ` kirill.shutemov
    2023-06-13 23:19                 ` Huang, Kai
    2023-06-08 23:02   ` kirill.shutemov
    2023-06-12  2:25     ` Huang, Kai
    2023-06-09  4:01   ` Sathyanarayanan Kuppuswamy
    2023-06-12  2:28     ` Huang, Kai
    2023-06-14 12:31   ` Nikolay Borisov
    2023-06-14 22:45     ` Huang, Kai
         [not found] ` <7bd7d0c6196deb58b54d6e629603775844b1307d.1685887183.git.kai.huang@intel.com>
    2023-06-09 10:03   ` [PATCH v11 16/20] x86/virt/tdx: Initialize all TDMRs kirill.shutemov
         [not found] ` <17bcbe3e154415ee7a4c77489809a3db0c5ddf3f.1685887183.git.kai.huang@intel.com>
    2023-06-09 10:14   ` [PATCH v11 17/20] x86/kexec: Flush cache of TDX private memory kirill.shutemov
         [not found] ` <116cafb15625ac0bcda7b47143921d0c42061b69.1685887183.git.kai.huang@intel.com>
    2023-06-09 13:17   ` [PATCH v11 19/20] x86/mce: Improve error log of kernel space TDX #MC due to erratum kirill.shutemov
    2023-06-12  3:08     ` Huang, Kai
    2023-06-12  7:59       ` kirill.shutemov
    2023-06-12 13:51         ` Dave Hansen
    2023-06-12 23:31           ` Huang, Kai
         [not found] ` <5aa7506d4fedbf625e3fe8ceeb88af3be1ce97ea.1685887183.git.kai.huang@intel.com>
    2023-06-09 13:23   ` [PATCH v11 18/20] x86: Handle TDX erratum to reset TDX private memory during kexec() and reboot kirill.shutemov
    2023-06-12  3:06     ` Huang, Kai
    2023-06-12  7:58       ` kirill.shutemov
    2023-06-12 10:27         ` Huang, Kai
    2023-06-12 11:48           ` kirill.shutemov
    2023-06-12 13:18             ` David Laight
    2023-06-12 13:47           ` Dave Hansen
    2023-06-13  0:51             ` Huang, Kai
    2023-06-13 11:05               ` kirill.shutemov
    2023-06-14  0:15                 ` Huang, Kai
    2023-06-13 14:25               ` Dave Hansen
    2023-06-13 23:18                 ` Huang, Kai
    2023-06-14  0:24                   ` Dave Hansen
    2023-06-14  0:38                     ` Huang, Kai
    2023-06-14  0:42                       ` Huang, Kai
    2023-06-19 11:43             ` Huang, Kai
    2023-06-19 14:31               ` Dave Hansen
    2023-06-19 14:46                 ` kirill.shutemov
    2023-06-19 23:35                   ` Huang, Kai
    2023-06-19 23:41                   ` Dave Hansen
    2023-06-20  0:56                     ` Huang, Kai
    2023-06-20  1:06                       ` Dave Hansen
    2023-06-20  7:58                         ` Peter Zijlstra
    2023-06-25 15:30                         ` Huang, Kai
    2023-06-25 23:26                           ` Huang, Kai
    2023-06-20  7:48                     ` Peter Zijlstra
    2023-06-20  8:11       ` Peter Zijlstra
    2023-06-20 10:42         ` Huang, Kai
    2023-06-20 10:56           ` Peter Zijlstra
    2023-06-14  9:33   ` Huang, Kai
    2023-06-14 10:02     ` kirill.shutemov
    2023-06-14 10:58       ` Huang, Kai
    2023-06-14 11:08         ` kirill.shutemov
    2023-06-14 11:17           ` Huang, Kai
         [not found] ` <30358db4eff961c69783bbd4d9f3e50932a9a759.1685887183.git.kai.huang@intel.com>
    2023-06-08 23:53   ` [PATCH v11 15/20] x86/virt/tdx: Configure global KeyID on all packages kirill.shutemov
    2023-06-15  8:12   ` Nikolay Borisov
    2023-06-15 22:24     ` Huang, Kai
    2023-06-19 14:56       ` kirill.shutemov
    2023-06-19 23:38         ` Huang, Kai
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox