All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	luto@kernel.org, pbonzini@redhat.com, seanjc@google.com,
	peterz@infradead.org, jgross@suse.com, ravi.v.shankar@intel.com,
	mhiramat@kernel.org, andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com, nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 31/35] x86/entry: Add fred_entry_from_kvm() for VMX to handle IRQ/NMI
Date: Tue,  5 Dec 2023 02:50:20 -0800	[thread overview]
Message-ID: <20231205105030.8698-32-xin3.li@intel.com> (raw)
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>

In IRQ/NMI induced VM exits, KVM VMX needs to execute the respective
handlers, which requires the software to create a FRED stack frame,
and use it to invoke the handlers. Add fred_irq_entry_from_kvm() for
this job.

Export fred_entry_from_kvm() because VMX can be compiled as a module.

Suggested-by: Sean Christopherson <seanjc@google.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* Better explain the reason why no need to check current stack level
  (Paolo Bonzini).

Changes since v9:
* Shove the whole thing into arch/x86/entry/entry_64_fred.S for invoking
  external_interrupt() and fred_exc_nmi() (Sean Christopherson).
* Correct and improve a few comments (Sean Christopherson).
* Merge the two IRQ/NMI asm entries into one as it's fine to invoke
  noinstr code from regular code (Thomas Gleixner).
* Setup the long mode and NMI flags in the augmented SS field of FRED
  stack frame in C instead of asm (Thomas Gleixner).
* Add UNWIND_HINT_{SAVE,RESTORE} to get rid of the warning: "objtool:
  asm_fred_entry_from_kvm+0x0: unreachable instruction" (Peter Zijlstra).

Changes since v8:
* Add a new macro VMX_DO_FRED_EVENT_IRQOFF for FRED instead of
  refactoring VMX_DO_EVENT_IRQOFF (Sean Christopherson).
* Do NOT use a trampoline, just LEA+PUSH the return RIP, PUSH the error
  code, and jump to the FRED kernel entry point for NMI or call
  external_interrupt() for IRQs (Sean Christopherson).
* Call external_interrupt() only when FRED is enabled, and convert the
  non-FRED handling to external_interrupt() after FRED lands (Sean
  Christopherson).
---
 arch/x86/entry/entry_64_fred.S | 77 ++++++++++++++++++++++++++++++++++
 arch/x86/entry/entry_fred.c    | 14 +++++++
 arch/x86/include/asm/fred.h    | 18 ++++++++
 3 files changed, 109 insertions(+)

diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
index d1c2fc4af8ae..eedf98de7538 100644
--- a/arch/x86/entry/entry_64_fred.S
+++ b/arch/x86/entry/entry_64_fred.S
@@ -3,8 +3,11 @@
  * The actual FRED entry points.
  */
 
+#include <linux/export.h>
+
 #include <asm/asm.h>
 #include <asm/fred.h>
+#include <asm/segment.h>
 
 #include "calling.h"
 
@@ -54,3 +57,77 @@ SYM_CODE_START_NOALIGN(asm_fred_entrypoint_kernel)
 	FRED_EXIT
 	ERETS
 SYM_CODE_END(asm_fred_entrypoint_kernel)
+
+#if IS_ENABLED(CONFIG_KVM_INTEL)
+SYM_FUNC_START(asm_fred_entry_from_kvm)
+	push %rbp
+	mov %rsp, %rbp
+
+	UNWIND_HINT_SAVE
+
+	/*
+	 * Both IRQ and NMI from VMX can be handled on current task stack
+	 * because there is no need to protect from reentrancy and the call
+	 * stack leading to this helper is effectively constant and shallow
+	 * (relatively speaking). Do the same when FRED is active, i.e., no
+	 * need to check current stack level for a stack switch.
+	 *
+	 * Emulate the FRED-defined redzone and stack alignment.
+	 */
+	sub $(FRED_CONFIG_REDZONE_AMOUNT << 6), %rsp
+	and $FRED_STACK_FRAME_RSP_MASK, %rsp
+
+	/*
+	 * Start to push a FRED stack frame, which is always 64 bytes:
+	 *
+	 * +--------+-----------------+
+	 * | Bytes  | Usage           |
+	 * +--------+-----------------+
+	 * | 63:56  | Reserved        |
+	 * | 55:48  | Event Data      |
+	 * | 47:40  | SS + Event Info |
+	 * | 39:32  | RSP             |
+	 * | 31:24  | RFLAGS          |
+	 * | 23:16  | CS + Aux Info   |
+	 * |  15:8  | RIP             |
+	 * |   7:0  | Error Code      |
+	 * +--------+-----------------+
+	 */
+	push $0				/* Reserved, must be 0 */
+	push $0				/* Event data, 0 for IRQ/NMI */
+	push %rdi			/* fred_ss handed in by the caller */
+	push %rbp
+	pushf
+	mov $__KERNEL_CS, %rax
+	push %rax
+
+	/*
+	 * Unlike the IDT event delivery, FRED _always_ pushes an error code
+	 * after pushing the return RIP, thus the CALL instruction CANNOT be
+	 * used here to push the return RIP, otherwise there is no chance to
+	 * push an error code before invoking the IRQ/NMI handler.
+	 *
+	 * Use LEA to get the return RIP and push it, then push an error code.
+	 */
+	lea 1f(%rip), %rax
+	push %rax				/* Return RIP */
+	push $0					/* Error code, 0 for IRQ/NMI */
+
+	PUSH_AND_CLEAR_REGS clear_bp=0 unwind_hint=0
+	movq %rsp, %rdi				/* %rdi -> pt_regs */
+	call __fred_entry_from_kvm		/* Call the C entry point */
+	POP_REGS
+	ERETS
+1:
+	/*
+	 * Objtool doesn't understand what ERETS does, this hint tells it that
+	 * yes, we'll reach here and with what stack state. A save/restore pair
+	 * isn't strictly needed, but it's the simplest form.
+	 */
+	UNWIND_HINT_RESTORE
+	pop %rbp
+	RET
+
+SYM_FUNC_END(asm_fred_entry_from_kvm)
+EXPORT_SYMBOL_GPL(asm_fred_entry_from_kvm);
+#endif
diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
index e80e3efbc057..3e33a4ab4624 100644
--- a/arch/x86/entry/entry_fred.c
+++ b/arch/x86/entry/entry_fred.c
@@ -242,3 +242,17 @@ __visible noinstr void fred_entry_from_kernel(struct pt_regs *regs)
 		return fred_bad_type(regs, error_code);
 	}
 }
+
+#if IS_ENABLED(CONFIG_KVM_INTEL)
+__visible noinstr void __fred_entry_from_kvm(struct pt_regs *regs)
+{
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		return fred_exc_nmi(regs);
+	default:
+		WARN_ON_ONCE(1);
+	}
+}
+#endif
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 16a64ffecbf8..2fa9f34e5c95 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -9,6 +9,7 @@
 #include <linux/const.h>
 
 #include <asm/asm.h>
+#include <asm/trapnr.h>
 
 /*
  * FRED event return instruction opcodes for ERET{S,U}; supported in
@@ -62,12 +63,29 @@ static __always_inline unsigned long fred_event_data(struct pt_regs *regs)
 
 void asm_fred_entrypoint_user(void);
 void asm_fred_entrypoint_kernel(void);
+void asm_fred_entry_from_kvm(struct fred_ss);
 
 __visible void fred_entry_from_user(struct pt_regs *regs);
 __visible void fred_entry_from_kernel(struct pt_regs *regs);
+__visible void __fred_entry_from_kvm(struct pt_regs *regs);
+
+/* Can be called from noinstr code, thus __always_inline */
+static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int vector)
+{
+	struct fred_ss ss = {
+		.ss     =__KERNEL_DS,
+		.type   = type,
+		.vector = vector,
+		.nmi    = type == EVENT_TYPE_NMI,
+		.lm     = 1,
+	};
+
+	asm_fred_entry_from_kvm(ss);
+}
 
 #else /* CONFIG_X86_FRED */
 static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
+static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int vector) { }
 #endif /* CONFIG_X86_FRED */
 #endif /* !__ASSEMBLY__ */
 
-- 
2.43.0


  parent reply	other threads:[~2023-12-05 11:23 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-05 10:49 [PATCH v13 00/35] x86: enable FRED for x86-64 Xin Li
2023-12-05 10:49 ` [PATCH v13 01/35] x86/cpufeatures,opcode,msr: Add the WRMSRNS instruction support Xin Li
2023-12-11  5:14   ` Masami Hiramatsu
2024-01-02 15:34   ` Borislav Petkov
2024-01-02 22:06     ` Li, Xin3
2024-01-03 11:10       ` Borislav Petkov
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2023-12-05 10:49 ` [PATCH v13 02/35] x86/entry: Remove idtentry_sysvec from entry_{32,64}.S Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2023-12-05 10:49 ` [PATCH v13 03/35] x86/trapnr: Add event type macros to <asm/trapnr.h> Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2023-12-05 10:49 ` [PATCH v13 04/35] Documentation/x86/64: Add a documentation for FRED Xin Li
2024-01-25 18:21   ` [tip: x86/fred] Documentation/x86/64: Add " tip-bot2 for Xin Li
2023-12-05 10:49 ` [PATCH v13 05/35] x86/fred: Add Kconfig option for FRED (CONFIG_X86_FRED) Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:49 ` [PATCH v13 06/35] x86/cpufeatures: Add the CPU feature bit for FRED Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:49 ` [PATCH v13 07/35] x86/fred: Disable FRED support if CONFIG_X86_FRED is disabled Xin Li
2024-01-22 13:08   ` Borislav Petkov
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:49 ` [PATCH v13 08/35] x86/fred: Disable FRED by default in its early stage Xin Li
2024-01-22 13:19   ` Borislav Petkov
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` [tip: x86/fred] x86/fred: Add a fred= cmdline param tip-bot2 for Xin Li
2023-12-05 10:49 ` [PATCH v13 09/35] x86/opcode: Add ERET[US] instructions to the x86 opcode map Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:49 ` [PATCH v13 10/35] x86/objtool: Teach objtool about ERET[US] Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 11/35] x86/cpu: Add X86_CR4_FRED macro Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 12/35] x86/cpu: Add MSR numbers for FRED configuration Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 13/35] x86/ptrace: Cleanup the definition of the pt_regs structure Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2024-02-03 23:52     ` H. Peter Anvin
2024-02-06 19:04       ` Xin Li
2024-02-06 20:45         ` H. Peter Anvin
2024-02-06 21:10           ` H.J. Lu
2023-12-05 10:50 ` [PATCH v13 14/35] x86/ptrace: Add FRED additional information to " Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 15/35] x86/fred: Add a new header file for FRED definitions Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 16/35] x86/fred: Reserve space for the FRED stack frame Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 17/35] x86/fred: Update MSR_IA32_FRED_RSP0 during task switch Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 18/35] x86/fred: Disallow the swapgs instruction when FRED is enabled Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 19/35] x86/fred: No ESPFIX needed " Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 20/35] x86/fred: Allow single-step trap and NMI when starting a new task Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 21/35] x86/fred: Make exc_page_fault() work for FRED Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 22/35] x86/idtentry: Incorporate definitions/declarations of the FRED entries Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 23/35] x86/fred: Add a debug fault entry stub for FRED Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 24/35] x86/fred: Add a NMI " Xin Li
2023-12-15  1:51   ` H. Peter Anvin
2023-12-15 18:37     ` Li, Xin3
2023-12-16  6:31       ` [PATCH v13A " Xin Li
2024-01-25 18:21         ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21         ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14         ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 25/35] x86/fred: Add a machine check " Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code Xin Li
2023-12-05 12:25   ` Andrew Cooper
2023-12-05 19:03     ` Li, Xin3
2023-12-06  7:45     ` Li, Xin3
2023-12-06 14:11       ` Andrew Cooper
2023-12-06 19:19         ` Li, Xin3
2023-12-06 19:26           ` H. Peter Anvin
2023-12-06 19:58           ` Brian Gerst
2023-12-07  9:43           ` Li, Xin3
2023-12-09 21:42             ` [PATCH v13A " Xin Li
2024-01-25 18:21               ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-26 10:00                 ` Borislav Petkov
2024-01-26 10:05               ` [PATCH v13A 26/35] " Borislav Petkov
2024-01-31  7:21               ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14               ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 27/35] x86/traps: Add sysvec_install() to install a system interrupt handler Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 28/35] x86/fred: Let ret_from_fork_asm() jmp to asm_fred_exit_user when FRED is enabled Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 29/35] x86/fred: Fixup fault on ERETU by jumping to fred_entrypoint_user Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 30/35] x86/entry/calling: Allow PUSH_AND_CLEAR_REGS being used beyond actual entry code Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Peter Zijlstra (Intel)
2024-01-31  7:21   ` tip-bot2 for Peter Zijlstra (Intel)
2024-01-31 21:14   ` tip-bot2 for Peter Zijlstra (Intel)
2023-12-05 10:50 ` Xin Li [this message]
2024-01-25 18:21   ` [tip: x86/fred] x86/entry: Add fred_entry_from_kvm() for VMX to handle IRQ/NMI tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 32/35] KVM: VMX: Call fred_entry_from_kvm() for IRQ/NMI handling Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 33/35] x86/syscall: Split IDT syscall setup code into idt_syscall_init() Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for Xin Li
2024-01-31  7:21   ` tip-bot2 for Xin Li
2024-01-31 21:14   ` tip-bot2 for Xin Li
2023-12-05 10:50 ` [PATCH v13 34/35] x86/fred: Add FRED initialization functions Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)
2023-12-05 10:50 ` [PATCH v13 35/35] x86/fred: Invoke FRED initialization code to enable FRED Xin Li
2024-01-25 18:21   ` [tip: x86/fred] " tip-bot2 for H. Peter Anvin (Intel)
2024-01-31  7:21   ` tip-bot2 for H. Peter Anvin (Intel)
2024-01-31 21:14   ` tip-bot2 for H. Peter Anvin (Intel)

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=20231205105030.8698-32-xin3.li@intel.com \
    --to=xin3.li@intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=jiangshanlai@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=nik.borisov@suse.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=ravi.v.shankar@intel.com \
    --cc=seanjc@google.com \
    --cc=shan.kang@intel.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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.