All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuppuswamy Sathyanarayanan  <sathyanarayanan.kuppuswamy@linux.intel.com>
To: Peter Zijlstra <peterz@infradead.org>,
	Andy Lutomirski <luto@kernel.org>,
	Dave Hansen <dave.hansen@intel.com>,
	Tony Luck <tony.luck@intel.com>
Cc: 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>,
	Kuppuswamy Sathyanarayanan 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	linux-kernel@vger.kernel.org
Subject: [RFC v2-fix-v2 1/1] x86/traps: Add #VE support for TDX guest
Date: Wed, 26 May 2021 17:29:31 -0700	[thread overview]
Message-ID: <20210527002931.3632581-1-sathyanarayanan.kuppuswamy@linux.intel.com> (raw)
In-Reply-To: <4031ffc2-a442-5da7-e793-ac1053533bb3@linux.intel.com>

From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>

Virtualization Exceptions (#VE) are delivered to TDX guests due to
specific guest actions which may happen in either user space or the kernel:

 * Specific instructions (WBINVD, for example)
 * Specific MSR accesses
 * Specific CPUID leaf accesses
 * Access to TD-shared memory, which includes MMIO

In the settings that Linux will run in, virtual exceptions are never
generated on accesses to normal, TD-private memory that has been
accepted.

The entry paths do not access TD-shared memory, MMIO regions or use
those specific MSRs, instructions, CPUID leaves that might generate #VE.
In addition, all interrupts including NMIs are blocked by the hardware
starting with #VE delivery until TDGETVEINFO is called.  This eliminates
the chance of a #VE during the syscall gap or paranoid entry paths and
simplifies #VE handling.

After TDGETVEINFO #VE could happen in theory (e.g. through an NMI),
but it is expected not to happen because TDX expects NMIs not to
trigger #VEs. Another case where they could happen is if the #VE
exception panics, but in this case there are no guarantees on anything
anyways.

If a guest kernel action which would normally cause a #VE occurs in the
interrupt-disabled region before TDGETVEINFO, a #DF is delivered to the
guest which will result in an oops (and should eventually be a panic, as
we would like to set panic_on_oops to 1 for TDX guests).

Add basic infrastructure to handle any #VE which occurs in the kernel or
userspace.  Later patches will add handling for specific #VE scenarios.

Convert unhandled #VE's (everything, until later in this series) so that
they appear just like a #GP by calling ve_raise_fault() directly.
ve_raise_fault() is similar to #GP handler and is responsible for
sending SIGSEGV to userspace and cpu die and notifying debuggers and
other die chain users.  

Co-developed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
---

Changes since RFC v2-fix:
 * No code changes (Added Tony to "To" list)

Changes since v1:
 * Removed [RFC v2 07/32] x86/traps: Add do_general_protection() helper function.
 * Instead of resuing #GP handler, defined a custom handler.
 * Fixed commit log as per review comments.

 arch/x86/include/asm/idtentry.h |  4 ++
 arch/x86/include/asm/tdx.h      | 19 +++++++++
 arch/x86/kernel/idt.c           |  6 +++
 arch/x86/kernel/tdx.c           | 36 +++++++++++++++++
 arch/x86/kernel/traps.c         | 69 +++++++++++++++++++++++++++++++++
 5 files changed, 134 insertions(+)

diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
index 5eb3bdf36a41..41a0732d5f68 100644
--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -619,6 +619,10 @@ DECLARE_IDTENTRY_XENCB(X86_TRAP_OTHER,	exc_xen_hypervisor_callback);
 DECLARE_IDTENTRY_RAW(X86_TRAP_OTHER,	exc_xen_unknown_trap);
 #endif
 
+#ifdef CONFIG_INTEL_TDX_GUEST
+DECLARE_IDTENTRY(X86_TRAP_VE,		exc_virtualization_exception);
+#endif
+
 /* Device interrupts common/spurious */
 DECLARE_IDTENTRY_IRQ(X86_TRAP_OTHER,	common_interrupt);
 #ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
index fcd42119a287..a451786496a0 100644
--- a/arch/x86/include/asm/tdx.h
+++ b/arch/x86/include/asm/tdx.h
@@ -39,6 +39,25 @@ struct tdx_hypercall_output {
 	u64 r15;
 };
 
+/*
+ * Used by #VE exception handler to gather the #VE exception
+ * info from the TDX module. This is software only structure
+ * and not related to TDX module/VMM.
+ */
+struct ve_info {
+	u64 exit_reason;
+	u64 exit_qual;
+	u64 gla;
+	u64 gpa;
+	u32 instr_len;
+	u32 instr_info;
+};
+
+unsigned long tdg_get_ve_info(struct ve_info *ve);
+
+int tdg_handle_virtualization_exception(struct pt_regs *regs,
+		struct ve_info *ve);
+
 /* Common API to check TDX support in decompression and common kernel code. */
 bool is_tdx_guest(void);
 
diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c
index ee1a283f8e96..546b6b636c7d 100644
--- a/arch/x86/kernel/idt.c
+++ b/arch/x86/kernel/idt.c
@@ -64,6 +64,9 @@ static const __initconst struct idt_data early_idts[] = {
 	 */
 	INTG(X86_TRAP_PF,		asm_exc_page_fault),
 #endif
+#ifdef CONFIG_INTEL_TDX_GUEST
+	INTG(X86_TRAP_VE,		asm_exc_virtualization_exception),
+#endif
 };
 
 /*
@@ -87,6 +90,9 @@ static const __initconst struct idt_data def_idts[] = {
 	INTG(X86_TRAP_MF,		asm_exc_coprocessor_error),
 	INTG(X86_TRAP_AC,		asm_exc_alignment_check),
 	INTG(X86_TRAP_XF,		asm_exc_simd_coprocessor_error),
+#ifdef CONFIG_INTEL_TDX_GUEST
+	INTG(X86_TRAP_VE,		asm_exc_virtualization_exception),
+#endif
 
 #ifdef CONFIG_X86_32
 	TSKG(X86_TRAP_DF,		GDT_ENTRY_DOUBLEFAULT_TSS),
diff --git a/arch/x86/kernel/tdx.c b/arch/x86/kernel/tdx.c
index e4383b416ef3..527d2638ddae 100644
--- a/arch/x86/kernel/tdx.c
+++ b/arch/x86/kernel/tdx.c
@@ -10,6 +10,7 @@
 
 /* TDX Module call Leaf IDs */
 #define TDINFO				1
+#define TDGETVEINFO			3
 
 static struct {
 	unsigned int gpa_width;
@@ -87,6 +88,41 @@ static void tdg_get_info(void)
 	td_info.attributes = out.rdx;
 }
 
+unsigned long tdg_get_ve_info(struct ve_info *ve)
+{
+	u64 ret;
+	struct tdx_module_output out = {0};
+
+	/*
+	 * NMIs and machine checks are suppressed. Before this point any
+	 * #VE is fatal. After this point (TDGETVEINFO call), NMIs and
+	 * additional #VEs are permitted (but we don't expect them to
+	 * happen unless you panic).
+	 */
+	ret = __tdx_module_call(TDGETVEINFO, 0, 0, 0, 0, &out);
+
+	ve->exit_reason = out.rcx;
+	ve->exit_qual   = out.rdx;
+	ve->gla         = out.r8;
+	ve->gpa         = out.r9;
+	ve->instr_len   = out.r10 & UINT_MAX;
+	ve->instr_info  = out.r10 >> 32;
+
+	return ret;
+}
+
+int tdg_handle_virtualization_exception(struct pt_regs *regs,
+		struct ve_info *ve)
+{
+	/*
+	 * TODO: Add handler support for various #VE exit
+	 * reasons. It will be added by other patches in
+	 * the series.
+	 */
+	pr_warn("Unexpected #VE: %lld\n", ve->exit_reason);
+	return -EFAULT;
+}
+
 void __init tdx_early_init(void)
 {
 	if (!cpuid_has_tdx_guest())
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 651e3e508959..043608943c3b 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -61,6 +61,7 @@
 #include <asm/insn.h>
 #include <asm/insn-eval.h>
 #include <asm/vdso.h>
+#include <asm/tdx.h>
 
 #ifdef CONFIG_X86_64
 #include <asm/x86_init.h>
@@ -1137,6 +1138,74 @@ DEFINE_IDTENTRY(exc_device_not_available)
 	}
 }
 
+#define VEFSTR "VE fault"
+static void ve_raise_fault(struct pt_regs *regs, long error_code)
+{
+	struct task_struct *tsk = current;
+
+	if (user_mode(regs)) {
+		tsk->thread.error_code = error_code;
+		tsk->thread.trap_nr = X86_TRAP_VE;
+
+		/*
+		 * Not fixing up VDSO exceptions similar to #GP handler
+		 * because we don't expect the VDSO to trigger #VE.
+		 */
+		show_signal(tsk, SIGSEGV, "", VEFSTR, regs, error_code);
+		force_sig(SIGSEGV);
+		return;
+	}
+
+	if (fixup_exception(regs, X86_TRAP_VE, error_code, 0))
+		return;
+
+	tsk->thread.error_code = error_code;
+	tsk->thread.trap_nr = X86_TRAP_VE;
+
+	/*
+	 * To be potentially processing a kprobe fault and to trust the result
+	 * from kprobe_running(), we have to be non-preemptible.
+	 */
+	if (!preemptible() &&
+	    kprobe_running() &&
+	    kprobe_fault_handler(regs, X86_TRAP_VE))
+		return;
+
+	notify_die(DIE_GPF, VEFSTR, regs, error_code, X86_TRAP_VE, SIGSEGV);
+
+	die_addr(VEFSTR, regs, error_code, 0);
+}
+
+#ifdef CONFIG_INTEL_TDX_GUEST
+DEFINE_IDTENTRY(exc_virtualization_exception)
+{
+	struct ve_info ve;
+	int ret;
+
+	RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU");
+
+	/*
+	 * NMIs/Machine-checks/Interrupts will be in a disabled state
+	 * till TDGETVEINFO TDCALL is executed. This prevents #VE
+	 * nesting issue.
+	 */
+	ret = tdg_get_ve_info(&ve);
+
+	cond_local_irq_enable(regs);
+
+	if (!ret)
+		ret = tdg_handle_virtualization_exception(regs, &ve);
+	/*
+	 * If tdg_handle_virtualization_exception() could not process
+	 * it successfully, treat it as #GP(0) and handle it.
+	 */
+	if (ret)
+		ve_raise_fault(regs, 0);
+
+	cond_local_irq_disable(regs);
+}
+#endif
+
 #ifdef CONFIG_X86_32
 DEFINE_IDTENTRY_SW(iret_error)
 {
-- 
2.25.1


  reply	other threads:[~2021-05-27  0:29 UTC|newest]

Thread overview: 386+ 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               ` Kuppuswamy Sathyanarayanan [this message]
2021-05-27 15:11                 ` [RFC v2-fix-v2 " 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-05-22 18:17                     ` kernel test robot
2021-05-22 22:50                     ` kernel test robot
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  2:50                                       ` kernel test robot
2021-06-01  4:29                                       ` kernel test robot
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-06-01  6:12         ` kernel test robot
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=20210527002931.3632581-1-sathyanarayanan.kuppuswamy@linux.intel.com \
    --to=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=ashok.raj@intel.com \
    --cc=dan.j.williams@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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.