From: Dave Hansen <dave.hansen@intel.com>
To: Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Andy Lutomirski <luto@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>, Andi Kleen <ak@linux.intel.com>,
Kirill Shutemov <kirill.shutemov@linux.intel.com>,
Kuppuswamy Sathyanarayanan <knsathya@kernel.org>,
Dan Williams <dan.j.williams@intel.com>,
Raj Ashok <ashok.raj@intel.com>,
Sean Christopherson <seanjc@google.com>,
linux-kernel@vger.kernel.org
Subject: Re: [RFC v2-fix-v1 1/1] x86/tdx: Add __tdx_module_call() and __tdx_hypercall() helper functions
Date: Wed, 19 May 2021 08:31:17 -0700 [thread overview]
Message-ID: <568d2929-f366-e3be-96f9-0bfa91991ef2@intel.com> (raw)
In-Reply-To: <20210519055842.2048957-1-sathyanarayanan.kuppuswamy@linux.intel.com>
On 5/18/21 10:58 PM, Kuppuswamy Sathyanarayanan wrote:
> Guests communicate with VMMs with hypercalls. Historically, these
> are implemented using instructions that are known to cause VMEXITs
> like vmcall, vmlaunch, etc. However, with TDX, VMEXITs no longer
> expose guest state to the host. This prevents the old hypercall
> mechanisms from working. So to communicate with VMM, TDX
> specification defines a new instruction called "tdcall".
>
> In TDX based VM, since VMM is an untrusted entity, a intermediary
"In a TDX-based VM..."
> layer (TDX module) exists between host and guest to facilitate the
> secure communication. And "tdcall" instruction is used by the guest
> to request services from TDX module. And a variant of "tdcall"
> instruction (with specific arguments as defined by GHCI) is used by
> the guest to request services from VMM via the TDX module.
I'd just say:
TDX guests communicate with the TDX module and with the VMM
using a new instruction: TDCALL.
The rest of that is noise.
> Implement common helper functions to communicate with the TDX Module
> and VMM (using TDCALL instruction).
>
> __tdx_hypercall() - function can be used to request services from
> the VMM.
> __tdx_module_call() - function can be used to communicate with the
> TDX Module.
s/function can be used to//
> Also define two additional wrappers, tdx_hypercall() and
> tdx_hypercall_out_r11() to cover common use cases of
> __tdx_hypercall() function. Since each use case of
> __tdx_module_call() is different, we don't need such wrappers for it.
>
> Implement __tdx_module_call() and __tdx_hypercall() helper functions
> in assembly.
>
> Rationale behind choosing to use assembly over inline assembly are,
>
> 1. Since the number of lines of instructions (with comments) in
> __tdx_hypercall() implementation is over 70, using inline assembly
> to implement it will make it hard to read.
>
> 2. Also, since many registers (R8-R15, R[A-D]X)) will be used in
> TDCALL operation, if all these registers are included in in-line
> assembly constraints, some of the older compilers may not
> be able to meet this requirement.
Was this "older compiler" argument really the reason?
> Also, just like syscalls, not all TDVMCALL/TDCALLs use cases need to
> use the same set of argument registers. The implementation here picks
> the current worst-case scenario for TDCALL (4 registers). For TDCALLs
> with fewer than 4 arguments, there will end up being a few superfluous
> (cheap) instructions. But, this approach maximizes code reuse. The
> same argument applies to __tdx_hypercall() function as well.
>
> Current implementation of __tdx_hypercall() includes error handling
> (ud2 on failure case) in assembly function instead of doing it in C
> wrapper function. The reason behind this choice is, when adding support
> for in/out instructions (refer to patch titled "x86/tdx: Handle port
> I/O" in this series), we use alternative_io() to substitute in/out
> instruction with __tdx_hypercall() calls. So use of C wrappers is not
> trivial in this case because the input parameters will be in the wrong
> registers and it's tricky to include proper buffer code to make this
> happen.
>
> For registers used by TDCALL instruction, please check TDX GHCI
> specification, sec 2.4 and 3.
>
> https://software.intel.com/content/dam/develop/external/us/en/documents/intel-tdx-guest-hypervisor-communication-interface.pdf
>
> Originally-by: Sean Christopherson <seanjc@google.com>
> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
For what it's worth, that changelog really starts to ramble after the
"rationale" part.
> diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
> index 69af72d08d3d..211b9d66b1b1 100644
> --- a/arch/x86/include/asm/tdx.h
> +++ b/arch/x86/include/asm/tdx.h
> @@ -8,12 +8,50 @@
> #ifdef CONFIG_INTEL_TDX_GUEST
>
> #include <asm/cpufeature.h>
> +#include <linux/types.h>
> +
> +/*
> + * Used in __tdx_module_call() helper function to gather the
> + * output registers values of TDCALL instruction when requesting
There's something wrong in this sentence. This needs to be "output
register values" or "output regisers' values".
> + * services from the TDX module. This is software only structure
> + * and not related to TDX module/VMM.
> + */
> +struct tdx_module_output {
> + u64 rcx;
> + u64 rdx;
> + u64 r8;
> + u64 r9;
> + u64 r10;
> + u64 r11;
> +};
> +
> +/*
> + * Used in __tdx_hypercall() helper function to gather the
> + * output registers values of TDCALL instruction when requesting
> + * services from the VMM. This is software only structure
> + * and not related to TDX module/VMM.
> + */
> +struct tdx_hypercall_output {
> + u64 r11;
> + u64 r12;
> + u64 r13;
> + u64 r14;
> + u64 r15;
> +};
>
> /* Common API to check TDX support in decompression and common kernel code. */
> bool is_tdx_guest(void);
>
> void __init tdx_early_init(void);
>
> +/* Helper function used to communicate with the TDX module */
> +u64 __tdx_module_call(u64 fn, u64 rcx, u64 rdx, u64 r8, u64 r9,
> + struct tdx_module_output *out);
> +
> +/* Helper function used to request services from VMM */
> +u64 __tdx_hypercall(u64 fn, u64 r12, u64 r13, u64 r14, u64 r15,
> + struct tdx_hypercall_output *out);
> +
> #else // !CONFIG_INTEL_TDX_GUEST
>
> static inline bool is_tdx_guest(void)
> diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
> index ea111bf50691..7966c10ea8d1 100644
> --- a/arch/x86/kernel/Makefile
> +++ b/arch/x86/kernel/Makefile
> @@ -127,7 +127,7 @@ obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
> obj-$(CONFIG_X86_PMEM_LEGACY_DEVICE) += pmem.o
>
> obj-$(CONFIG_JAILHOUSE_GUEST) += jailhouse.o
> -obj-$(CONFIG_INTEL_TDX_GUEST) += tdx.o
> +obj-$(CONFIG_INTEL_TDX_GUEST) += tdcall.o tdx.o
>
> obj-$(CONFIG_EISA) += eisa.o
> obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o
> diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
> index 60b9f42ce3c1..e6b3bb983992 100644
> --- a/arch/x86/kernel/asm-offsets.c
> +++ b/arch/x86/kernel/asm-offsets.c
> @@ -23,6 +23,10 @@
> #include <xen/interface/xen.h>
> #endif
>
> +#ifdef CONFIG_INTEL_TDX_GUEST
> +#include <asm/tdx.h>
> +#endif
> +
> #ifdef CONFIG_X86_32
> # include "asm-offsets_32.c"
> #else
> @@ -75,6 +79,24 @@ static void __used common(void)
> OFFSET(XEN_vcpu_info_arch_cr2, vcpu_info, arch.cr2);
> #endif
>
> +#ifdef CONFIG_INTEL_TDX_GUEST
> + BLANK();
> + /* Offset for fields in tdcall_output */
> + OFFSET(TDX_MODULE_rcx, tdx_module_output, rcx);
> + OFFSET(TDX_MODULE_rdx, tdx_module_output, rdx);
> + OFFSET(TDX_MODULE_r8, tdx_module_output, r8);
> + OFFSET(TDX_MODULE_r9, tdx_module_output, r9);
> + OFFSET(TDX_MODULE_r10, tdx_module_output, r10);
> + OFFSET(TDX_MODULE_r11, tdx_module_output, r11);
> +
> + /* Offset for fields in tdvmcall_output */
> + OFFSET(TDX_HYPERCALL_r11, tdx_hypercall_output, r11);
> + OFFSET(TDX_HYPERCALL_r12, tdx_hypercall_output, r12);
> + OFFSET(TDX_HYPERCALL_r13, tdx_hypercall_output, r13);
> + OFFSET(TDX_HYPERCALL_r14, tdx_hypercall_output, r14);
> + OFFSET(TDX_HYPERCALL_r15, tdx_hypercall_output, r15);
> +#endif
> +
> BLANK();
> OFFSET(BP_scratch, boot_params, scratch);
> OFFSET(BP_secure_boot, boot_params, secure_boot);
> diff --git a/arch/x86/kernel/tdcall.S b/arch/x86/kernel/tdcall.S
> new file mode 100644
> index 000000000000..a67c595e4169
> --- /dev/null
> +++ b/arch/x86/kernel/tdcall.S
> @@ -0,0 +1,222 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#include <asm/asm-offsets.h>
> +#include <asm/asm.h>
> +#include <asm/frame.h>
> +#include <asm/unwind_hints.h>
> +
> +#include <linux/linkage.h>
> +#include <linux/bits.h>
> +
> +#define TDG_R10 BIT(10)
> +#define TDG_R11 BIT(11)
> +#define TDG_R12 BIT(12)
> +#define TDG_R13 BIT(13)
> +#define TDG_R14 BIT(14)
> +#define TDG_R15 BIT(15)
> +
> +/*
> + * Expose registers R10-R15 to VMM. It is passed via RCX register
> + * to the TDX Module, which will be used by the TDX module to
> + * identify the list of registers exposed to VMM. Each bit in this
> + * mask represents a register ID. You can find the bit field details
> + * in TDX GHCI specification.
> + */
> +#define TDVMCALL_EXPOSE_REGS_MASK ( TDG_R10 | TDG_R11 | \
> + TDG_R12 | TDG_R13 | \
> + TDG_R14 | TDG_R15 )
> +
> +/*
> + * TDX guests use the TDCALL instruction to make requests to the
> + * TDX module and hypercalls to the VMM. It is supported in
> + * Binutils >= 2.36.
> + */
> +#define tdcall .byte 0x66,0x0f,0x01,0xcc
> +
> +/*
> + * __tdx_module_call() - Helper function used by TDX guests to request
> + * services from the TDX module (does not include VMM services).
> + *
> + * This function serves as a wrapper to move user call arguments to the
> + * correct registers as specified by "tdcall" ABI and shares it with the
> + * TDX module. And if the "tdcall" operation is successful and a valid
It's frequently taught to never start a sentence with "And" in formal
writing. You use it fairly frequently. Simply removing it increase
readability, IMNHO.
> + * "struct tdx_module_output" pointer is available (in "out" argument),
> + * output from the TDX module is saved to the memory specified in the
> + * "out" pointer. Also the status of the "tdcall" operation is returned
> + * back to the user as a function return value.
> + *
> + * @fn (RDI) - TDCALL Leaf ID, moved to RAX
> + * @rcx (RSI) - Input parameter 1, moved to RCX
> + * @rdx (RDX) - Input parameter 2, moved to RDX
> + * @r8 (RCX) - Input parameter 3, moved to R8
> + * @r9 (R8) - Input parameter 4, moved to R9
> + *
> + * @out (R9) - struct tdx_module_output pointer
> + * stored temporarily in R12 (not
> + * shared with the TDX module)
> + *
> + * Return status of tdcall via RAX.
> + *
> + * NOTE: This function should not be used for TDX hypercall
> + * use cases.
> + */
> +SYM_FUNC_START(__tdx_module_call)
> + FRAME_BEGIN
> +
> + /*
> + * R12 will be used as temporary storage for
> + * struct tdx_module_output pointer. You can
> + * find struct tdx_module_output details in
> + * arch/x86/include/asm/tdx.h. Also note that
> + * registers R12-R15 are not used by TDCALL
> + * services supported by this helper function.
> + */
> + push %r12 /* Callee saved, so preserve it */
> + mov %r9, %r12 /* Move output pointer to R12 */
> +
> + /* Mangle function call ABI into TDCALL ABI: */
> + mov %rdi, %rax /* Move TDCALL Leaf ID to RAX */
> + mov %r8, %r9 /* Move input 4 to R9 */
> + mov %rcx, %r8 /* Move input 3 to R8 */
> + mov %rsi, %rcx /* Move input 1 to RCX */
> + /* Leave input param 2 in RDX */
> +
> + tdcall
> +
> + /* Check for TDCALL success: 0 - Successful, otherwise failed */
> + test %rax, %rax
> + jnz 1f
> +
> + /* Check for TDCALL output struct != NULL */
> + test %r12, %r12
> + jz 1f
> +
> + /* Copy TDCALL result registers to output struct: */
> + movq %rcx, TDX_MODULE_rcx(%r12)
> + movq %rdx, TDX_MODULE_rdx(%r12)
> + movq %r8, TDX_MODULE_r8(%r12)
> + movq %r9, TDX_MODULE_r9(%r12)
> + movq %r10, TDX_MODULE_r10(%r12)
> + movq %r11, TDX_MODULE_r11(%r12)
> +1:
> + pop %r12 /* Restore the state of R12 register */
> +
> + FRAME_END
> + ret
> +SYM_FUNC_END(__tdx_module_call)
> +
> +/*
> + * do_tdx_hypercall() - Helper function used by TDX guests to request
> + * services from the VMM. All requests are made via the TDX module
> + * using "TDCALL" instruction.
> + *
> + * This function is created to contain common between vendor specific
This sentence seems wrong. Common... what?
> + * and standard type tdx hypercalls. So the caller of this function had
Please capitalize "tdx" consistently.
> + * to set the TDVMCALL type in the R10 register before calling it.
> + * This function serves as a wrapper to move user call arguments to the
> + * correct registers as specified by "tdcall" ABI and shares it with VMM
> + * via the TDX module. And if the "tdcall" operation is successful and a
> + * valid "struct tdx_hypercall_output" pointer is available (in "out"
> + * argument), output from the VMM is saved to the memory specified in the
> + * "out" pointer.
> + *
> + * @fn (RDI) - TDVMCALL function, moved to R11
> + * @r12 (RSI) - Input parameter 1, moved to R12
> + * @r13 (RDX) - Input parameter 2, moved to R13
> + * @r14 (RCX) - Input parameter 3, moved to R14
> + * @r15 (R8) - Input parameter 4, moved to R15
> + *
> + * @out (R9) - struct tdx_hypercall_output pointer
> + *
> + * On successful completion, return TDX hypercall error code.
> + * If the "tdcall" operation fails, panic.
> + *
> + */
This sounds scary. Can you try to differentate a hypercall failure from
a "tdcall" failure?
Actually, I think that's done OK below. Just remove this mention of
panic().
> +SYM_FUNC_START_LOCAL(do_tdx_hypercall)
> + /* Save non-volatile GPRs that are exposed to the VMM. */
> + push %r15
> + push %r14
> + push %r13
> + push %r12
> +
> + /* Leave hypercall output pointer in R9, it's not clobbered by VMM */
> +
> + /* Mangle function call ABI into TDCALL ABI: */
> + xor %eax, %eax /* Move TDCALL leaf ID (TDVMCALL (0)) to RAX */
> + mov %rdi, %r11 /* Move TDVMCALL function id to R11 */
> + mov %rsi, %r12 /* Move input 1 to R12 */
> + mov %rdx, %r13 /* Move input 2 to R13 */
> + mov %rcx, %r14 /* Move input 1 to R14 */
> + mov %r8, %r15 /* Move input 1 to R15 */
> + /* Caller of do_tdx_hypercall() will set TDVMCALL type in R10 */
> +
> + movl $TDVMCALL_EXPOSE_REGS_MASK, %ecx
> +
> + tdcall
> +
> + /*
> + * Check for TDCALL success: 0 - Successful, otherwise failed.
> + * If failed, there is an issue with TDX Module which is fatal
> + * for the guest. So panic. Also note that RAX is controlled
> + * only by the TDX module and not exposed to VMM.
> + */
I'd probably just say:
/*
* Non-zero RAX values indicate a failure of TDCALL itself.
* Panic for those. This value is unrelated to the hypercall
* result in R10.
*/
> + test %rax, %rax
> + jnz 2f
> +
> + /* Move hypercall error code to RAX to return to user */
> + mov %r10, %rax
> +
> + /* Check for hypercall success: 0 - Successful, otherwise failed */
> + test %rax, %rax
> + jnz 1f
> +
> + /* Check for hypercall output struct != NULL */
This is a great example of a comment that's not using its space widely.
If you're reading this, you *KNOW* that it's checking for NULL. But
what does that *MEAN*?
Wh not:
/* Check if caller provided an output struct */
> + test %r9, %r9
> + jz 1f
> +
> + /* Copy hypercall result registers to output struct: */
> + movq %r11, TDX_HYPERCALL_r11(%r9)
> + movq %r12, TDX_HYPERCALL_r12(%r9)
> + movq %r13, TDX_HYPERCALL_r13(%r9)
> + movq %r14, TDX_HYPERCALL_r14(%r9)
> + movq %r15, TDX_HYPERCALL_r15(%r9)
> +1:
> + /*
> + * Zero out registers exposed to the VMM to avoid
> + * speculative execution with VMM-controlled values.
> + */
You can even say:
This needs to include all registers present in
TDVMCALL_EXPOSE_REGS_MASK
> + xor %r10d, %r10d
> + xor %r11d, %r11d
> + xor %r12d, %r12d
> + xor %r13d, %r13d
> + xor %r14d, %r14d
> + xor %r15d, %r15d
> +
> + /* Restore non-volatile GPRs that are exposed to the VMM. */
> + pop %r12
> + pop %r13
> + pop %r14
> + pop %r15
> +
> + ret
> +2:
> + ud2
> +SYM_FUNC_END(do_tdx_hypercall)
> +
> +/*
> + * Helper function for for standard type of TDVMCALLs. This assembly
> + * wrapper lets us reuse do_tdvmcall() for standard type of hypercalls
> + * (R10 is set as zero).
> + */
Remember, no "us", "we" in changelogs or comments.
> +SYM_FUNC_START(__tdx_hypercall)
> + FRAME_BEGIN
> + /*
> + * R10 is not part of the function call ABI, but it is a part
> + * of the TDVMCALL ABI. So set it 0 for standard type TDVMCALL
> + * before making call to the do_tdx_hypercall().
> + */
> + xor %r10, %r10
> + call do_tdx_hypercall
> + FRAME_END
> + retq
> +SYM_FUNC_END(__tdx_hypercall)
The rest of it is fine. Probably just one more rev to beef up the
comments and changelogs.
next prev parent reply other threads:[~2021-05-19 15:31 UTC|newest]
Thread overview: 381+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-26 18:01 [RFC v2 00/32] Add TDX Guest Support Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 01/32] x86/paravirt: Introduce CONFIG_PARAVIRT_XL Kuppuswamy Sathyanarayanan
2021-04-27 17:31 ` Borislav Petkov
2021-05-06 14:59 ` Kirill A. Shutemov
2021-05-10 8:07 ` Juergen Gross
2021-05-10 15:52 ` Andi Kleen
2021-05-10 15:56 ` Juergen Gross
2021-05-12 12:07 ` Kirill A. Shutemov
2021-05-12 13:18 ` Peter Zijlstra
2021-05-12 13:24 ` Andi Kleen
2021-05-12 13:51 ` Juergen Gross
2021-05-17 23:50 ` [RFC v2-fix 1/1] x86/paravirt: Move halt paravirt calls under CONFIG_PARAVIRT Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 02/32] x86/tdx: Introduce INTEL_TDX_GUEST config option Kuppuswamy Sathyanarayanan
2021-04-26 21:09 ` Randy Dunlap
2021-04-26 22:32 ` Kuppuswamy, Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 03/32] x86/cpufeatures: Add TDX Guest CPU feature Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 04/32] x86/x86: Add is_tdx_guest() interface Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 05/32] x86/tdx: Add __tdcall() and __tdvmcall() helper functions Kuppuswamy Sathyanarayanan
2021-04-26 20:32 ` Dave Hansen
2021-04-26 22:31 ` Kuppuswamy, Sathyanarayanan
2021-04-26 23:17 ` Dave Hansen
2021-04-27 2:29 ` Kuppuswamy, Sathyanarayanan
2021-04-27 14:29 ` Dave Hansen
2021-04-27 19:18 ` Kuppuswamy, Sathyanarayanan
2021-04-27 19:20 ` Dave Hansen
2021-04-28 17:42 ` [PATCH v1 1/1] x86/tdx: Add __tdx_module_call() and __tdx_hypercall() " Kuppuswamy Sathyanarayanan
2021-05-19 5:58 ` [RFC v2-fix-v1 " Kuppuswamy Sathyanarayanan
2021-05-19 6:04 ` Kuppuswamy, Sathyanarayanan
2021-05-19 15:31 ` Dave Hansen [this message]
2021-05-19 19:09 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-19 19:13 ` [RFC v2-fix-v1 " Kuppuswamy, Sathyanarayanan
2021-05-19 20:09 ` Sean Christopherson
2021-05-19 20:49 ` Andi Kleen
2021-05-27 0:30 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-27 15:25 ` Luck, Tony
2021-05-27 15:52 ` Kuppuswamy, Sathyanarayanan
2021-05-27 16:25 ` Luck, Tony
2021-04-26 18:01 ` [RFC v2 06/32] x86/tdx: Get TD execution environment information via TDINFO Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 07/32] x86/traps: Add do_general_protection() helper function Kuppuswamy Sathyanarayanan
2021-05-07 21:20 ` Dave Hansen
2021-04-26 18:01 ` [RFC v2 08/32] x86/traps: Add #VE support for TDX guest Kuppuswamy Sathyanarayanan
2021-05-07 21:36 ` Dave Hansen
2021-05-13 19:47 ` Andi Kleen
2021-05-13 20:07 ` Dave Hansen
2021-05-13 22:43 ` Andi Kleen
2021-05-13 20:14 ` Dave Hansen
2021-05-18 0:09 ` [RFC v2-fix 1/1] " Kuppuswamy Sathyanarayanan
2021-05-18 15:11 ` Dave Hansen
2021-05-18 15:45 ` Andi Kleen
2021-05-18 15:56 ` Dave Hansen
2021-05-18 16:00 ` Andi Kleen
2021-05-21 19:22 ` Dan Williams
2021-05-24 14:02 ` Andi Kleen
2021-05-27 0:29 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-27 15:11 ` Luck, Tony
2021-05-27 16:24 ` Sean Christopherson
2021-05-27 16:36 ` Dave Hansen
2021-05-21 18:45 ` [RFC v2-fix " Kuppuswamy, Sathyanarayanan
2021-05-21 19:15 ` Dave Hansen
2021-05-21 19:57 ` Kuppuswamy, Sathyanarayanan
2021-06-08 17:02 ` [RFC v2 08/32] " Dave Hansen
2021-06-08 17:48 ` Sean Christopherson
2021-06-08 17:53 ` Dave Hansen
2021-06-08 18:12 ` Andi Kleen
2021-06-08 18:15 ` Dave Hansen
2021-06-08 18:17 ` Andy Lutomirski
2021-06-08 18:18 ` Andi Kleen
2021-04-26 18:01 ` [RFC v2 09/32] x86/tdx: Add HLT " Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 10/32] x86/tdx: Wire up KVM hypercalls Kuppuswamy Sathyanarayanan
2021-05-07 21:46 ` Dave Hansen
2021-05-08 0:59 ` Kuppuswamy, Sathyanarayanan
2021-05-12 13:00 ` Kirill A. Shutemov
2021-05-12 14:10 ` Kuppuswamy, Sathyanarayanan
2021-05-12 14:29 ` Dave Hansen
2021-05-13 19:29 ` Kuppuswamy, Sathyanarayanan
2021-05-13 19:33 ` Dave Hansen
2021-05-18 0:15 ` [RFC v2-fix 1/1] " Kuppuswamy Sathyanarayanan
2021-05-18 15:51 ` Dave Hansen
2021-05-18 16:23 ` Sean Christopherson
2021-05-18 20:12 ` Kuppuswamy, Sathyanarayanan
2021-05-18 20:19 ` Dave Hansen
2021-05-18 20:57 ` Kuppuswamy, Sathyanarayanan
2021-05-18 21:19 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-18 23:29 ` Dave Hansen
2021-05-19 1:17 ` [RFC v2-fix-v3 " Kuppuswamy Sathyanarayanan
2021-05-19 1:20 ` Sathyanarayanan Kuppuswamy Natarajan
2021-04-26 18:01 ` [RFC v2 11/32] x86/tdx: Add MSR support for TDX guest Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 12/32] x86/tdx: Handle CPUID via #VE Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 13/32] x86/io: Allow to override inX() and outX() implementation Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 14/32] x86/tdx: Handle port I/O Kuppuswamy Sathyanarayanan
2021-05-10 21:57 ` Dan Williams
2021-05-10 23:08 ` Andi Kleen
2021-05-10 23:34 ` Dan Williams
2021-05-11 0:01 ` Andi Kleen
2021-05-11 0:21 ` Dan Williams
2021-05-11 0:30 ` Kuppuswamy, Sathyanarayanan
2021-05-11 1:07 ` Dan Williams
2021-05-11 2:29 ` Kuppuswamy, Sathyanarayanan
2021-05-11 14:39 ` Dave Hansen
2021-05-11 15:08 ` Kuppuswamy, Sathyanarayanan
2021-05-11 0:56 ` Kuppuswamy, Sathyanarayanan
2021-05-11 2:19 ` Andi Kleen
2021-05-11 15:35 ` Dave Hansen
2021-05-11 15:43 ` Dan Williams
2021-05-12 6:17 ` Dan Williams
2021-05-27 4:23 ` [RFC v2-fix-v1 0/3] " Kuppuswamy Sathyanarayanan
2021-05-27 4:23 ` [RFC v2-fix-v1 1/3] tdx: Introduce generic protected_guest abstraction Kuppuswamy Sathyanarayanan
2021-06-01 21:14 ` [RFC v2-fix-v2 1/1] x86: Introduce generic protected guest abstraction Kuppuswamy Sathyanarayanan
2021-06-02 17:20 ` Sean Christopherson
2021-06-02 18:15 ` Tom Lendacky
2021-06-02 18:25 ` Kuppuswamy, Sathyanarayanan
2021-06-02 18:29 ` Borislav Petkov
2021-06-02 18:32 ` Kuppuswamy, Sathyanarayanan
2021-06-02 18:39 ` Borislav Petkov
2021-06-02 18:45 ` Kuppuswamy, Sathyanarayanan
2021-06-02 18:19 ` Tom Lendacky
2021-06-02 18:29 ` Kuppuswamy, Sathyanarayanan
2021-06-02 18:30 ` Borislav Petkov
2021-06-03 18:14 ` Borislav Petkov
2021-06-03 18:15 ` [RFC v2-fix-v2 1/1] x86: Introduce generic protected guest abstractionn Borislav Petkov
2021-06-04 22:01 ` Tom Lendacky
2021-06-04 22:13 ` Kuppuswamy, Sathyanarayanan
2021-06-04 22:15 ` Borislav Petkov
2021-06-04 23:31 ` Tom Lendacky
2021-06-05 11:03 ` Borislav Petkov
2021-06-05 18:12 ` Kuppuswamy, Sathyanarayanan
2021-06-05 20:08 ` Borislav Petkov
2021-06-07 19:55 ` Kirill A. Shutemov
2021-06-07 20:14 ` Borislav Petkov
2021-06-07 22:26 ` Kuppuswamy, Sathyanarayanan
2021-06-08 21:30 ` [RFC v2-fix-v3 1/1] x86: Introduce generic protected guest abstraction Kuppuswamy Sathyanarayanan
2021-06-03 18:33 ` [RFC v2-fix-v2 " Kuppuswamy, Sathyanarayanan
2021-06-03 18:41 ` Borislav Petkov
2021-06-03 18:54 ` Kuppuswamy, Sathyanarayanan
2021-06-07 18:01 ` Kuppuswamy, Sathyanarayanan
2021-06-07 18:26 ` Borislav Petkov
2021-06-09 14:01 ` Kuppuswamy, Sathyanarayanan
2021-06-09 14:32 ` Borislav Petkov
2021-06-09 14:56 ` Kuppuswamy, Sathyanarayanan
2021-06-09 15:01 ` Borislav Petkov
2021-06-09 19:41 ` [RFC v2-fix-v4 " Kuppuswamy Sathyanarayanan
2021-06-09 22:53 ` Sathyanarayanan Kuppuswamy Natarajan
2021-05-27 4:23 ` [RFC v2-fix-v1 2/3] x86/tdx: Handle early IO operations Kuppuswamy Sathyanarayanan
2021-06-05 4:26 ` Williams, Dan J
2021-05-27 4:23 ` [RFC v2-fix-v1 3/3] x86/tdx: Handle port I/O Kuppuswamy Sathyanarayanan
2021-06-05 18:52 ` Dan Williams
2021-06-05 20:08 ` Kuppuswamy, Sathyanarayanan
2021-06-05 21:08 ` Dan Williams
2021-06-07 16:24 ` Kuppuswamy, Sathyanarayanan
2021-06-07 17:17 ` Dan Williams
2021-06-07 21:52 ` Kuppuswamy, Sathyanarayanan
2021-06-07 22:00 ` Dan Williams
2021-06-08 2:57 ` Andi Kleen
2021-06-08 15:40 ` [RFC v2-fix-v2 0/3] " Kuppuswamy Sathyanarayanan
2021-06-08 15:40 ` [RFC v2-fix-v2 1/3] x86/tdx: Handle port I/O in decompression code Kuppuswamy Sathyanarayanan
2021-06-08 23:12 ` Dan Williams
2021-06-08 15:40 ` [RFC v2-fix-v2 2/3] x86/tdx: Handle early IO operations Kuppuswamy Sathyanarayanan
2021-06-08 15:40 ` [RFC v2-fix-v2 3/3] x86/tdx: Handle port I/O Kuppuswamy Sathyanarayanan
2021-06-08 16:26 ` Dan Williams
2021-04-26 18:01 ` [RFC v2 15/32] x86/tdx: Handle in-kernel MMIO Kuppuswamy Sathyanarayanan
2021-05-07 21:52 ` Dave Hansen
2021-05-18 0:48 ` [RFC v2-fix 1/1] " Kuppuswamy Sathyanarayanan
2021-05-18 15:00 ` Dave Hansen
2021-05-18 15:56 ` Andi Kleen
2021-05-18 16:04 ` Dave Hansen
2021-05-18 16:10 ` Andi Kleen
2021-05-18 16:22 ` Dave Hansen
2021-05-18 17:05 ` Andi Kleen
2021-05-18 17:28 ` Andi Kleen
2021-05-18 17:11 ` Sean Christopherson
2021-05-18 17:21 ` Andi Kleen
2021-05-18 17:46 ` Dave Hansen
2021-05-18 18:36 ` Sean Christopherson
2021-05-18 20:20 ` Andi Kleen
2021-05-18 20:40 ` Dave Hansen
2021-05-18 21:05 ` Andi Kleen
2021-05-18 18:22 ` Sean Christopherson
2021-05-18 20:28 ` Andi Kleen
2021-05-18 20:37 ` Sean Christopherson
2021-05-18 20:56 ` Andi Kleen
2021-05-18 16:18 ` Sean Christopherson
2021-05-18 17:15 ` Andi Kleen
2021-05-18 18:17 ` Sean Christopherson
2021-05-20 22:47 ` Kirill A. Shutemov
2021-06-02 19:42 ` [RFC v2-fix-v2 0/2] " Kuppuswamy Sathyanarayanan
2021-06-02 19:42 ` [RFC v2-fix-v2 1/2] x86/sev-es: Abstract out MMIO instruction decoding Kuppuswamy Sathyanarayanan
2021-06-05 21:56 ` Dan Williams
2021-06-08 15:59 ` [RFC v2-fix-v3 0/4] x86/tdx: Handle in-kernel MMIO Kuppuswamy Sathyanarayanan
2021-06-08 15:59 ` [RFC v2-fix-v3 1/4] x86/insn-eval: Introduce insn_get_modrm_reg_ptr() Kuppuswamy Sathyanarayanan
2021-06-08 15:59 ` [RFC v2-fix-v3 2/4] x86/insn-eval: Introduce insn_decode_mmio() Kuppuswamy Sathyanarayanan
2021-06-08 15:59 ` [RFC v2-fix-v3 3/4] x86/sev-es: Use insn_decode_mmio() for MMIO implementation Kuppuswamy Sathyanarayanan
2021-06-08 15:59 ` [RFC v2-fix-v3 4/4] x86/tdx: Handle in-kernel MMIO Kuppuswamy Sathyanarayanan
2021-06-02 19:42 ` [RFC v2-fix-v2 2/2] " Kuppuswamy Sathyanarayanan
2021-06-02 21:01 ` Andi Kleen
2021-06-02 22:14 ` Kuppuswamy, Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 16/32] x86/tdx: Handle MWAIT, MONITOR and WBINVD Kuppuswamy Sathyanarayanan
2021-05-11 1:23 ` Dan Williams
2021-05-11 2:17 ` Andi Kleen
2021-05-11 2:44 ` Kuppuswamy, Sathyanarayanan
2021-05-11 2:51 ` Andi Kleen
2021-05-11 15:37 ` Dan Williams
2021-05-11 15:42 ` Andi Kleen
2021-05-11 15:44 ` Dave Hansen
2021-05-11 15:50 ` Dan Williams
2021-05-11 15:52 ` Andi Kleen
2021-05-11 16:04 ` Dave Hansen
2021-05-11 17:06 ` Andi Kleen
2021-05-11 17:42 ` Dave Hansen
2021-05-11 17:48 ` Andi Kleen
2021-05-24 23:32 ` [RFC v2-fix-v2 1/2] x86/tdx: Handle MWAIT and MONITOR Kuppuswamy Sathyanarayanan
2021-05-24 23:32 ` [RFC v2-fix-v2 2/2] x86/tdx: Ignore WBINVD instruction for TDX guest Kuppuswamy Sathyanarayanan
2021-05-24 23:39 ` Dan Williams
2021-05-25 0:29 ` Kuppuswamy, Sathyanarayanan
2021-05-25 0:50 ` Dan Williams
2021-05-25 0:54 ` Sean Christopherson
2021-05-25 1:02 ` Andi Kleen
2021-05-25 1:45 ` Dan Williams
2021-05-25 2:13 ` Andi Kleen
2021-05-25 2:49 ` Dan Williams
2021-05-25 3:27 ` Andi Kleen
2021-05-25 3:40 ` Dan Williams
2021-05-26 1:09 ` Andi Kleen
2021-05-27 4:38 ` [RFC v2-fix-v3 1/1] " Kuppuswamy Sathyanarayanan
2021-06-05 3:35 ` Dan Williams
2021-06-08 21:35 ` [RFC v2-fix-v3 1/1] x86/tdx: Skip " Kuppuswamy Sathyanarayanan
2021-06-08 21:41 ` Dan Williams
2021-06-08 22:17 ` Dave Hansen
2021-06-08 22:34 ` Andi Kleen
2021-06-08 22:36 ` Kuppuswamy, Sathyanarayanan
2021-06-08 22:53 ` Dave Hansen
2021-06-08 23:04 ` Andi Kleen
2021-06-08 23:04 ` Kuppuswamy, Sathyanarayanan
2021-06-08 23:32 ` Dan Williams
2021-06-08 23:38 ` Dave Hansen
2021-06-09 0:07 ` Dan Williams
2021-06-09 0:14 ` Kuppuswamy, Sathyanarayanan
2021-06-09 1:10 ` [RFC v2-fix-v4 " Kuppuswamy Sathyanarayanan
2021-06-09 3:40 ` Dan Williams
2021-06-09 3:56 ` Kuppuswamy, Sathyanarayanan
2021-06-09 4:19 ` Dan Williams
2021-06-09 4:27 ` Andi Kleen
2021-06-09 15:09 ` Dan Williams
2021-06-09 16:12 ` Andy Lutomirski
2021-06-09 17:28 ` Kuppuswamy, Sathyanarayanan
2021-06-09 17:31 ` Dan Williams
2021-06-09 18:24 ` Kuppuswamy, Sathyanarayanan
2021-06-09 19:49 ` [RFC v2-fix-v5 1/1] x86: Skip WBINVD instruction for VM guest Kuppuswamy Sathyanarayanan
2021-06-09 19:56 ` Dan Williams
2021-06-09 21:03 ` Dave Hansen
2021-06-09 21:38 ` Dan Williams
2021-06-09 21:42 ` Kuppuswamy, Sathyanarayanan
2021-06-09 23:55 ` Dave Hansen
2021-06-09 4:02 ` [RFC v2-fix-v4 1/1] x86/tdx: Skip WBINVD instruction for TDX guest Andy Lutomirski
2021-06-09 4:21 ` Dan Williams
2021-06-09 4:25 ` Andi Kleen
2021-06-09 4:32 ` Andy Lutomirski
2021-06-09 4:40 ` Andi Kleen
2021-06-09 4:54 ` Kuppuswamy, Sathyanarayanan
2021-06-09 14:12 ` Dave Hansen
2021-05-25 4:32 ` [RFC v2-fix-v2 2/2] x86/tdx: Ignore " Dave Hansen
2021-05-25 0:36 ` Andi Kleen
2021-05-24 23:42 ` Dave Hansen
2021-05-25 0:39 ` Andi Kleen
2021-05-25 0:53 ` Dan Williams
2021-05-25 2:26 ` [RFC v2-fix-v2 1/2] x86/tdx: Handle MWAIT and MONITOR Dan Williams
2021-05-11 14:08 ` [RFC v2 16/32] x86/tdx: Handle MWAIT, MONITOR and WBINVD Dave Hansen
2021-05-11 16:09 ` Sean Christopherson
2021-05-11 16:16 ` Dave Hansen
2021-05-11 15:53 ` Dave Hansen
2021-04-26 18:01 ` [RFC v2 17/32] ACPICA: ACPI 6.4: MADT: add Multiprocessor Wakeup Structure Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 18/32] ACPICA: ACPI 6.4: MADT: add Multiprocessor Wakeup Mailbox Structure Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 19/32] ACPI/table: Print MADT Wake table information Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 20/32] x86/acpi, x86/boot: Add multiprocessor wake-up support Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 21/32] x86/boot: Add a trampoline for APs booting in 64-bit mode Kuppuswamy Sathyanarayanan
2021-05-13 2:56 ` Dan Williams
2021-05-18 0:54 ` [RFC v2-fix 1/1] " Kuppuswamy Sathyanarayanan
2021-05-18 2:06 ` Dan Williams
2021-05-18 2:53 ` Kuppuswamy, Sathyanarayanan
2021-05-18 4:08 ` Dan Williams
2021-05-20 0:18 ` Kuppuswamy, Sathyanarayanan
2021-05-20 0:40 ` Dan Williams
2021-05-20 0:42 ` Kuppuswamy, Sathyanarayanan
2021-05-21 14:39 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-21 18:29 ` Dan Williams
2021-04-26 18:01 ` [RFC v2 22/32] x86/boot: Avoid #VE during compressed boot for TDX platforms Kuppuswamy Sathyanarayanan
2021-05-13 3:03 ` Dan Williams
2021-04-26 18:01 ` [RFC v2 23/32] x86/boot: Avoid unnecessary #VE during boot process Kuppuswamy Sathyanarayanan
2021-05-13 3:23 ` Dan Williams
2021-05-18 0:59 ` [WARNING: UNSCANNABLE EXTRACTION FAILED][WARNING: UNSCANNABLE EXTRACTION FAILED][RFC v2-fix 1/1] x86/boot: Avoid #VE during boot for TDX platforms Kuppuswamy Sathyanarayanan
2021-05-19 16:53 ` [RFC " Dave Hansen
2021-05-21 14:35 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-05-21 16:11 ` Dave Hansen
2021-05-21 18:18 ` Sean Christopherson
2021-05-21 18:30 ` Dave Hansen
2021-05-21 18:32 ` Kuppuswamy, Sathyanarayanan
2021-05-24 23:27 ` [RFC v2-fix-v3 " Kuppuswamy Sathyanarayanan
2021-05-27 21:25 ` [RFC v2-fix-v4 " Kuppuswamy Sathyanarayanan
2021-06-08 23:14 ` Dan Williams
2021-05-21 18:31 ` [RFC v2-fix-v2 " Kuppuswamy, Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 24/32] x86/topology: Disable CPU online/offline control for TDX guest Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 25/32] x86/tdx: Forcefully disable legacy PIC for TDX guests Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 26/32] x86/mm: Move force_dma_unencrypted() to common code Kuppuswamy Sathyanarayanan
2021-05-07 21:54 ` Dave Hansen
2021-05-10 22:19 ` Kuppuswamy, Sathyanarayanan
2021-05-10 22:23 ` Dave Hansen
2021-05-12 13:08 ` Kirill A. Shutemov
2021-05-12 15:44 ` Dave Hansen
2021-05-12 15:53 ` Sean Christopherson
2021-05-13 16:40 ` Kuppuswamy, Sathyanarayanan
2021-05-13 17:49 ` Dave Hansen
2021-05-13 18:17 ` Kuppuswamy, Sathyanarayanan
2021-05-13 19:38 ` Andi Kleen
2021-05-13 19:42 ` Dave Hansen
2021-05-17 18:16 ` Sean Christopherson
2021-05-17 18:27 ` Kuppuswamy, Sathyanarayanan
2021-05-17 18:33 ` Dave Hansen
2021-05-17 18:37 ` Sean Christopherson
2021-05-17 22:32 ` Kuppuswamy, Sathyanarayanan
2021-05-17 23:11 ` Andi Kleen
2021-05-18 1:28 ` Kuppuswamy, Sathyanarayanan
2021-05-27 4:46 ` Kuppuswamy, Sathyanarayanan
2021-05-27 4:47 ` [RFC v2-fix-v1 1/1] " Kuppuswamy Sathyanarayanan
2021-06-01 2:10 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 27/32] x86/tdx: Exclude Shared bit from __PHYSICAL_MASK Kuppuswamy Sathyanarayanan
2021-05-19 5:00 ` Kuppuswamy, Sathyanarayanan
2021-05-19 16:14 ` Dave Hansen
2021-05-20 18:48 ` Kuppuswamy, Sathyanarayanan
2021-05-20 18:56 ` Kuppuswamy, Sathyanarayanan
2021-05-20 19:33 ` Sean Christopherson
2021-05-20 19:42 ` Kuppuswamy, Sathyanarayanan
2021-05-20 20:16 ` Sean Christopherson
2021-05-20 20:31 ` Andi Kleen
2021-05-20 21:18 ` Sean Christopherson
2021-05-20 21:23 ` Dave Hansen
2021-05-20 21:28 ` Kuppuswamy, Sathyanarayanan
2021-05-20 23:25 ` Andi Kleen
2021-05-20 20:56 ` Dave Hansen
2021-05-31 21:46 ` Kirill A. Shutemov
2021-06-01 2:08 ` [RFC v2-fix-v1 1/1] x86/tdx: Exclude Shared bit from physical_mask Kuppuswamy Sathyanarayanan
2021-05-20 20:30 ` [RFC v2 27/32] x86/tdx: Exclude Shared bit from __PHYSICAL_MASK Dave Hansen
2021-04-26 18:01 ` [RFC v2 28/32] x86/tdx: Make pages shared in ioremap() Kuppuswamy Sathyanarayanan
2021-05-07 21:55 ` Dave Hansen
2021-05-07 22:38 ` Andi Kleen
2021-05-10 22:23 ` Kuppuswamy, Sathyanarayanan
2021-05-10 22:30 ` Dave Hansen
2021-05-10 22:52 ` Sean Christopherson
2021-05-11 9:35 ` Borislav Petkov
2021-05-20 20:12 ` Kuppuswamy, Sathyanarayanan
2021-05-21 15:18 ` Borislav Petkov
2021-05-21 16:19 ` Tom Lendacky
2021-05-21 18:49 ` Borislav Petkov
2021-05-21 21:14 ` Tom Lendacky
2021-05-25 18:21 ` Kuppuswamy, Sathyanarayanan
2021-05-31 15:13 ` Borislav Petkov
2021-05-31 17:32 ` Kuppuswamy, Sathyanarayanan
2021-05-31 17:55 ` Borislav Petkov
2021-05-31 18:45 ` Kuppuswamy, Sathyanarayanan
2021-05-31 19:14 ` Borislav Petkov
2021-06-01 2:07 ` [RFC v2-fix-v1 1/1] " Kuppuswamy Sathyanarayanan
2021-06-01 21:16 ` [RFC v2 28/32] " Kuppuswamy, Sathyanarayanan
2021-05-26 21:37 ` Kuppuswamy, Sathyanarayanan
2021-05-26 22:02 ` Tom Lendacky
2021-05-26 22:14 ` Tom Lendacky
2021-05-26 22:20 ` Kuppuswamy, Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 29/32] x86/tdx: Add helper to do MapGPA TDVMALL Kuppuswamy Sathyanarayanan
2021-05-19 15:59 ` Dave Hansen
2021-05-20 23:14 ` Kuppuswamy, Sathyanarayanan
2021-05-27 4:56 ` [RFC v2-fix-v1 1/1] x86/tdx: Add helper to do MapGPA hypercall Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 30/32] x86/tdx: Make DMA pages shared Kuppuswamy Sathyanarayanan
2021-05-18 1:19 ` [RFC v2-fix 1/1] " Kuppuswamy Sathyanarayanan
2021-05-18 19:55 ` Sean Christopherson
2021-05-18 22:12 ` Kuppuswamy, Sathyanarayanan
2021-05-18 22:31 ` Dave Hansen
2021-06-01 2:06 ` [RFC v2-fix-v2 " Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 31/32] x86/kvm: Use bounce buffers for TD guest Kuppuswamy Sathyanarayanan
2021-06-01 2:03 ` [RFC v2-fix-v1 1/1] " Kuppuswamy Sathyanarayanan
2021-04-26 18:01 ` [RFC v2 32/32] x86/tdx: ioapic: Add shared bit for IOAPIC base address Kuppuswamy Sathyanarayanan
2021-05-07 23:06 ` Dave Hansen
2021-05-24 23:29 ` [RFC v2-fix-v2 1/1] " Kuppuswamy Sathyanarayanan
2021-06-01 1:28 ` [RFC v2-fix-v3 " Kuppuswamy Sathyanarayanan
2021-05-03 23:21 ` [RFC v2 00/32] Add TDX Guest Support Kuppuswamy, Sathyanarayanan
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=568d2929-f366-e3be-96f9-0bfa91991ef2@intel.com \
--to=dave.hansen@intel.com \
--cc=ak@linux.intel.com \
--cc=ashok.raj@intel.com \
--cc=dan.j.williams@intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=knsathya@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@infradead.org \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=tony.luck@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
Powered by JetHome