linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Kuppuswamy Sathyanarayanan  <sathyanarayanan.kuppuswamy@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Andy Lutomirski <luto@kernel.org>,
	Dave Hansen <dave.hansen@intel.com>,
	Tony Luck <tony.luck@intel.com>, Andi Kleen <ak@linux.intel.com>,
	Kirill Shutemov <kirill.shutemov@linux.intel.com>,
	Kuppuswamy Sathyanarayanan <knsathya@kernel.org>,
	Raj Ashok <ashok.raj@intel.com>,
	Sean Christopherson <seanjc@google.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [RFC v2 14/32] x86/tdx: Handle port I/O
Date: Mon, 10 May 2021 14:57:40 -0700	[thread overview]
Message-ID: <CAPcyv4jPLGs6p0PNZQB6yKB3QDtEcGb234zcgCbJutXxZZEGnA@mail.gmail.com> (raw)
In-Reply-To: <0e7e94d1ee4bae49dfd0dd441dc4f2ab6df76668.1619458733.git.sathyanarayanan.kuppuswamy@linux.intel.com>

On Mon, Apr 26, 2021 at 11:02 AM Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com> wrote:
>
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>

While I do not expect that a patch in the middle of a series needs the
full introduction of all concepts, the high expectations of  the
reader's context in this changelog make the patch actively painful to
read.

Some connective tissue commentary to list assumptions and pointers to
definitions is needed to make this patch stand alone when a future
bisect lands on it and someone wonders where to get started debugging
it.

> Unroll string operations and handle port I/O through TDVMCALLs.
> Also handle #VE due to I/O operations with the same TDVMCALLs.

There is a mix of direct-TDVMCALL usage and handling #VE when and why
is either approached used?

> Decompression code uses port IO for earlyprintk. We must use
> paravirt calls there too if we want to allow earlyprintk.

What is the tradeoff between teaching the decompression code to handle
#VE (the implied assumption) vs teaching it to avoid #VE with direct
TDVMCALLs (the chosen direction)?

Rewrite without "we":

"Given the need to support earlyprintk for protected guests, deploy
paravirt calls for the io*() and out*() usage in the decompress code."

This raises the question of why the cover letter switched from
explicitly saying TDVMCALL to "paravirt" where it could be confused
with the typical paravirt helpers?

>
> Decompresion code cannot deal with alternatives: use branches

s/Decompresion/Decompression/

> instead to implement inX() and outX() helpers.
>
> Since we use call instruction in place of in/out instruction,
> the argument passed to call instruction has to be in a
> register, it cannot be an immediate value like in/out
> instruction. So change constraint flag from "Nd" to "d"

Rewrite without "we":

With the approach to use a "call" instruction as an alternative for an
"in/out" instruction it is no longer the case that the argument can be
an immediate value. Change the asm constraint flag from "Nd" to "d" to
accomodate.

>
> Co-developed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reviewed-by: Andi Kleen <ak@linux.intel.com>
> ---
>  arch/x86/boot/compressed/Makefile |   1 +
>  arch/x86/boot/compressed/tdcall.S |   9 ++
>  arch/x86/include/asm/io.h         |   5 +-
>  arch/x86/include/asm/tdx.h        |  46 ++++++++-
>  arch/x86/kernel/tdcall.S          | 154 ++++++++++++++++++++++++++++++

Why is this named "tdcall" when it is implementing tdvmcalls? I must
say those names don't really help me understand what they do. Can we
have Linux names that don't mandate keeping the spec terminology in my
brain's translation cache?

>  arch/x86/kernel/tdx.c             |  33 +++++++
>  6 files changed, 245 insertions(+), 3 deletions(-)
>  create mode 100644 arch/x86/boot/compressed/tdcall.S
>
> diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
> index a2554621cefe..a944a2038797 100644
> --- a/arch/x86/boot/compressed/Makefile
> +++ b/arch/x86/boot/compressed/Makefile
> @@ -97,6 +97,7 @@ endif
>
>  vmlinux-objs-$(CONFIG_ACPI) += $(obj)/acpi.o
>  vmlinux-objs-$(CONFIG_INTEL_TDX_GUEST) += $(obj)/tdx.o
> +vmlinux-objs-$(CONFIG_INTEL_TDX_GUEST) += $(obj)/tdcall.o
>
>  vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_thunk_$(BITS).o
>  efi-obj-$(CONFIG_EFI_STUB) = $(objtree)/drivers/firmware/efi/libstub/lib.a
> diff --git a/arch/x86/boot/compressed/tdcall.S b/arch/x86/boot/compressed/tdcall.S
> new file mode 100644
> index 000000000000..5ebb80d45ad8
> --- /dev/null
> +++ b/arch/x86/boot/compressed/tdcall.S
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#include <asm/export.h>
> +
> +/* Do not export symbols in decompression code */
> +#undef EXPORT_SYMBOL
> +#define EXPORT_SYMBOL(sym)

What's wrong with the existing:

KBUILD_CFLAGS += -D__DISABLE_EXPORTS

...in arch/x86/boot/compressed/Makefile?

> +
> +#include "../../kernel/tdcall.S"
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index ef7a686a55a9..30a3b30395ad 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -43,6 +43,7 @@
>  #include <asm/page.h>
>  #include <asm/early_ioremap.h>
>  #include <asm/pgtable_types.h>
> +#include <asm/tdx.h>
>
>  #define build_mmio_read(name, size, type, reg, barrier) \
>  static inline type name(const volatile void __iomem *addr) \
> @@ -309,7 +310,7 @@ static inline unsigned type in##bwl##_p(int port)                   \
>                                                                         \
>  static inline void outs##bwl(int port, const void *addr, unsigned long count) \
>  {                                                                      \
> -       if (sev_key_active()) {                                         \
> +       if (sev_key_active() || is_tdx_guest()) {                       \

Is there a unified Linux name these can be given to stop the
proliferation of poor vendor names for similar concepts?

That routine

>                 unsigned type *value = (unsigned type *)addr;           \
>                 while (count) {                                         \
>                         out##bwl(*value, port);                         \
> @@ -325,7 +326,7 @@ static inline void outs##bwl(int port, const void *addr, unsigned long count) \
>                                                                         \
>  static inline void ins##bwl(int port, void *addr, unsigned long count) \
>  {                                                                      \
> -       if (sev_key_active()) {                                         \
> +       if (sev_key_active() || is_tdx_guest()) {                       \
>                 unsigned type *value = (unsigned type *)addr;           \
>                 while (count) {                                         \
>                         *value = in##bwl(port);                         \
> diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
> index e0b3ed9e262c..b972c6531a53 100644
> --- a/arch/x86/include/asm/tdx.h
> +++ b/arch/x86/include/asm/tdx.h
> @@ -5,6 +5,8 @@
>
>  #define TDX_CPUID_LEAF_ID      0x21
>
> +#ifndef __ASSEMBLY__
> +
>  #ifdef CONFIG_INTEL_TDX_GUEST
>
>  #include <asm/cpufeature.h>
> @@ -67,6 +69,48 @@ long tdx_kvm_hypercall3(unsigned int nr, unsigned long p1, unsigned long p2,
>  long tdx_kvm_hypercall4(unsigned int nr, unsigned long p1, unsigned long p2,
>                 unsigned long p3, unsigned long p4);
>
> +/* Decompression code doesn't know how to handle alternatives */

Does it also not know how to handle #VE to keep it aligned with the
runtime code?

> +#ifdef BOOT_COMPRESSED_MISC_H
> +#define __out(bwl, bw)                                                 \
> +do {                                                                   \
> +       if (is_tdx_guest()) {                                           \
> +               asm volatile("call tdg_out" #bwl : :                    \
> +                               "a"(value), "d"(port));                 \
> +       } else {                                                        \
> +               asm volatile("out" #bwl " %" #bw "0, %w1" : :           \
> +                               "a"(value), "Nd"(port));                \
> +       }                                                               \
> +} while (0)
> +#define __in(bwl, bw)                                                  \
> +do {                                                                   \
> +       if (is_tdx_guest()) {                                           \
> +               asm volatile("call tdg_in" #bwl :                       \
> +                               "=a"(value) : "d"(port));               \
> +       } else {                                                        \
> +               asm volatile("in" #bwl " %w1, %" #bw "0" :              \
> +                               "=a"(value) : "Nd"(port));              \
> +       }                                                               \
> +} while (0)
> +#else
> +#define __out(bwl, bw)                                                 \
> +       alternative_input("out" #bwl " %" #bw "1, %w2",                 \
> +                       "call tdg_out" #bwl, X86_FEATURE_TDX_GUEST,     \
> +                       "a"(value), "d"(port))
> +
> +#define __in(bwl, bw)                                                  \
> +       alternative_io("in" #bwl " %w2, %" #bw "0",                     \
> +                       "call tdg_in" #bwl, X86_FEATURE_TDX_GUEST,      \
> +                       "=a"(value), "d"(port))

Outside the boot decompression code isn't this branch of the "ifdef
BOOT_COMPRESSED_MISC_H"  handled by #VE? I also don't see any usage of
__{in,out}() in this patch.

> +#endif
> +
> +void tdg_outb(unsigned char value, unsigned short port);
> +void tdg_outw(unsigned short value, unsigned short port);
> +void tdg_outl(unsigned int value, unsigned short port);
> +
> +unsigned char tdg_inb(unsigned short port);
> +unsigned short tdg_inw(unsigned short port);
> +unsigned int tdg_inl(unsigned short port);
> +
>  #else // !CONFIG_INTEL_TDX_GUEST
>
>  static inline bool is_tdx_guest(void)
> @@ -106,5 +150,5 @@ static inline long tdx_kvm_hypercall4(unsigned int nr, unsigned long p1,
>  }
>
>  #endif /* CONFIG_INTEL_TDX_GUEST */
> -
> +#endif /* __ASSEMBLY__ */
>  #endif /* _ASM_X86_TDX_H */
> diff --git a/arch/x86/kernel/tdcall.S b/arch/x86/kernel/tdcall.S
> index 964bfd7fc682..df4159bb5103 100644
> --- a/arch/x86/kernel/tdcall.S
> +++ b/arch/x86/kernel/tdcall.S
> @@ -3,6 +3,7 @@
>  #include <asm/asm.h>
>  #include <asm/frame.h>
>  #include <asm/unwind_hints.h>
> +#include <asm/export.h>
>
>  #include <linux/linkage.h>
>
> @@ -12,6 +13,12 @@
>   */
>  #define TDVMCALL_EXPOSE_REGS_MASK      0xfc00
>  #define TDVMCALL_VENDOR_KVM            0x4d564b2e584454 /* "TDX.KVM" */
> +#define EXIT_REASON_IO_INSTRUCTION     30
> +/*
> + * Current size of struct tdvmcall_output is 40 bytes,
> + * but allocate double to account future changes.

What future changes? Why could they not be handled as future code changes?

> + */
> +#define TDVMCALL_OUTPUT_SIZE           80

Perhaps "PAYLOAD_SIZE" since it is used for both input and output?

If the ABI does not include the size of the payload then how would
code detect if even 80 bytes was violated in the future?

>
>  /*
>   * TDX guests use the TDCALL instruction to make
> @@ -205,3 +212,150 @@ SYM_FUNC_START(__tdvmcall_vendor_kvm)
>         call do_tdvmcall
>         retq
>  SYM_FUNC_END(__tdvmcall_vendor_kvm)
> +
> +.macro io_save_registers
> +       push %rbp
> +       push %rbx
> +       push %rcx
> +       push %rdx
> +       push %rdi
> +       push %rsi
> +       push %r8
> +       push %r9
> +       push %r10
> +       push %r11
> +       push %r12
> +       push %r13
> +       push %r14
> +       push %r15

Surely there's an existing macro for this pattern? Would
PUSH_AND_CLEAR_REGS + POP_REGS be suitable? Besides code sharing it
would eliminate clearing of %r8.

> +.endm
> +.macro io_restore_registers
> +       pop %r15
> +       pop %r14
> +       pop %r13
> +       pop %r12
> +       pop %r11
> +       pop %r10
> +       pop %r9
> +       pop %r8
> +       pop %rsi
> +       pop %rdi
> +       pop %rdx
> +       pop %rcx
> +       pop %rbx
> +       pop %rbp
> +.endm
> +
> +/*
> + * tdg_out{b,w,l}()  - Write given data to the specified port.
> + *
> + * @arg1 (RAX)       - Value to be written (passed via R8 to do_tdvmcall()).
> + * @arg2 (RDX)       - Port id (passed via RCX to do_tdvmcall()).
> + *
> + */
> +SYM_FUNC_START(tdg_outb)
> +       io_save_registers
> +       xor %r8, %r8
> +       /* Move data to R8 register */
> +       mov %al, %r8b
> +       /* Set data width to 1 byte */
> +       mov $1, %rsi
> +       jmp 1f
> +
> +SYM_FUNC_START(tdg_outw)
> +       io_save_registers
> +       xor %r8, %r8
> +       /* Move data to R8 register */
> +       mov %ax, %r8w
> +       /* Set data width to 2 bytes */
> +       mov $2, %rsi
> +       jmp 1f
> +
> +SYM_FUNC_START(tdg_outl)
> +       io_save_registers
> +       xor %r8, %r8
> +       /* Move data to R8 register */
> +       mov %eax, %r8d
> +       /* Set data width to 4 bytes */
> +       mov $4, %rsi
> +1:
> +       /*
> +        * Since io_save_registers does not save rax
> +        * state, save it here so that we can preserve
> +        * the caller register state.
> +        */
> +       push %rax
> +
> +       mov %rdx, %rcx
> +       /* Set 1 in RDX to select out operation */
> +       mov $1, %rdx
> +       /* Set TDVMCALL function id in RDI */
> +       mov $EXIT_REASON_IO_INSTRUCTION, %rdi
> +       /* Set TDVMCALL type info (0 - Standard, > 0 - vendor) in R10 */
> +       xor %r10, %r10
> +       /* Since we don't use tdvmcall output, set it to NULL */
> +       xor %r9, %r9
> +
> +       call do_tdvmcall
> +
> +       pop %rax
> +       io_restore_registers
> +       ret
> +SYM_FUNC_END(tdg_outb)
> +SYM_FUNC_END(tdg_outw)
> +SYM_FUNC_END(tdg_outl)
> +EXPORT_SYMBOL(tdg_outb)
> +EXPORT_SYMBOL(tdg_outw)
> +EXPORT_SYMBOL(tdg_outl)
> +
> +/*
> + * tdg_in{b,w,l}()   - Read data to the specified port.
> + *
> + * @arg1 (RDX)       - Port id (passed via RCX to do_tdvmcall()).
> + *
> + * Returns data read via RAX register.
> + *
> + */
> +SYM_FUNC_START(tdg_inb)
> +       io_save_registers
> +       /* Set data width to 1 byte */
> +       mov $1, %rsi
> +       jmp 1f
> +
> +SYM_FUNC_START(tdg_inw)
> +       io_save_registers
> +       /* Set data width to 2 bytes */
> +       mov $2, %rsi
> +       jmp 1f
> +
> +SYM_FUNC_START(tdg_inl)
> +       io_save_registers
> +       /* Set data width to 4 bytes */
> +       mov $4, %rsi
> +1:
> +       mov %rdx, %rcx
> +       /* Set 0 in RDX to select in operation */
> +       mov $0, %rdx
> +       /* Set TDVMCALL function id in RDI */
> +       mov $EXIT_REASON_IO_INSTRUCTION, %rdi
> +       /* Set TDVMCALL type info (0 - Standard, > 0 - vendor) in R10 */
> +       xor %r10, %r10
> +       /* Allocate memory in stack for Output */
> +       subq $TDVMCALL_OUTPUT_SIZE, %rsp

Why is this leaf function responsibility? I would expect the core
do_tdvmcall (or whatever it is renamed to) helper to hide output
buffer payload handling. tdg_in* only wants 1, 2, or 4 bytes, not 40
bytes of payload to handle.

> +       /* Move tdvmcall_output pointer to R9 */
> +       movq %rsp, %r9
> +
> +       call do_tdvmcall
> +
> +       /* Move data read from port to RAX */
> +       mov TDVMCALL_r11(%r9), %eax

"TDVMCALL_r11" is unreadable, what is that doing?

Shouldn't failed in* calls signal failure with an all ones result?

> +       /* Free allocated memory */
> +       addq $TDVMCALL_OUTPUT_SIZE, %rsp
> +       io_restore_registers
> +       ret
> +SYM_FUNC_END(tdg_inb)
> +SYM_FUNC_END(tdg_inw)
> +SYM_FUNC_END(tdg_inl)
> +EXPORT_SYMBOL(tdg_inb)
> +EXPORT_SYMBOL(tdg_inw)
> +EXPORT_SYMBOL(tdg_inl)
> diff --git a/arch/x86/kernel/tdx.c b/arch/x86/kernel/tdx.c
> index e42e260df245..ec61f2f06c98 100644
> --- a/arch/x86/kernel/tdx.c
> +++ b/arch/x86/kernel/tdx.c
> @@ -189,6 +189,36 @@ static void tdg_handle_cpuid(struct pt_regs *regs)
>         regs->dx = out.r15;
>  }
>
> +static void tdg_out(int size, int port, unsigned int value)
> +{
> +       tdvmcall(EXIT_REASON_IO_INSTRUCTION, size, 1, port, value);
> +}
> +
> +static unsigned int tdg_in(int size, int port)
> +{
> +       return tdvmcall_out_r11(EXIT_REASON_IO_INSTRUCTION, size, 0, port, 0);
> +}
> +
> +static void tdg_handle_io(struct pt_regs *regs, u32 exit_qual)
> +{
> +       bool string = exit_qual & 16;
> +       int out, size, port;
> +
> +       /* I/O strings ops are unrolled at build time. */
> +       BUG_ON(string);
> +
> +       out = (exit_qual & 8) ? 0 : 1;
> +       size = (exit_qual & 7) + 1;
> +       port = exit_qual >> 16;

This seems to be begging for exit_qual helpers to put symbolic names
on these operations.

> +
> +       if (out) {
> +               tdg_out(size, port, regs->ax);
> +       } else {
> +               regs->ax &= ~GENMASK(8 * size, 0);
> +               regs->ax |= tdg_in(size, port) & GENMASK(8 * size, 0);
> +       }
> +}
> +
>  unsigned long tdg_get_ve_info(struct ve_info *ve)
>  {
>         u64 ret;
> @@ -238,6 +268,9 @@ int tdg_handle_virtualization_exception(struct pt_regs *regs,
>         case EXIT_REASON_CPUID:
>                 tdg_handle_cpuid(regs);
>                 break;
> +       case EXIT_REASON_IO_INSTRUCTION:
> +               tdg_handle_io(regs, ve->exit_qual);
> +               break;
>         default:
>                 pr_warn("Unexpected #VE: %lld\n", ve->exit_reason);
>                 return -EFAULT;
> --
> 2.25.1
>

  reply	other threads:[~2021-05-10 21:57 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
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 [this message]
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=CAPcyv4jPLGs6p0PNZQB6yKB3QDtEcGb234zcgCbJutXxZZEGnA@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=ak@linux.intel.com \
    --cc=ashok.raj@intel.com \
    --cc=dave.hansen@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;
as well as URLs for NNTP newsgroup(s).