From: Joerg Roedel <joro@8bytes.org>
To: x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Thomas Hellstrom <thellstrom@vmware.com>,
Joerg Roedel <jroedel@suse.de>, Kees Cook <keescook@chromium.org>,
kvm@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
Joerg Roedel <joro@8bytes.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
Andy Lutomirski <luto@kernel.org>,
hpa@zytor.com, Dan Williams <dan.j.williams@intel.com>,
Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 38/70] x86/sev-es: Setup early #VC handler
Date: Thu, 19 Mar 2020 10:13:35 +0100 [thread overview]
Message-ID: <20200319091407.1481-39-joro@8bytes.org> (raw)
In-Reply-To: <20200319091407.1481-1-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
Setup an early handler for #VC exceptions. There is no GHCB mapped
yet, so just re-use the vc_no_ghcb_handler. It can only handle CPUID
exit-codes, but that should be enough to get the kernel through
verify_cpu() and __startup_64() until it runs on virtual addresses.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
arch/x86/include/asm/desc.h | 1 +
arch/x86/include/asm/processor.h | 1 +
arch/x86/include/asm/sev-es.h | 2 ++
arch/x86/kernel/head64.c | 17 +++++++++++++++
arch/x86/kernel/head_64.S | 36 ++++++++++++++++++++++++++++++++
arch/x86/kernel/idt.c | 10 +++++++++
6 files changed, 67 insertions(+)
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index 80bf63c08007..30e2a0e863b6 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -388,6 +388,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
void update_intr_gate(unsigned int n, const void *addr);
void alloc_intr_gate(unsigned int n, const void *addr);
+void set_early_idt_handler(gate_desc *idt, int n, void *handler);
static inline void init_idt_data(struct idt_data *data, unsigned int n,
const void *addr)
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 09705ccc393c..4622427d01d4 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -768,6 +768,7 @@ extern int sysenter_setup(void);
/* Defined in head.S */
extern struct desc_ptr early_gdt_descr;
+extern struct desc_ptr early_idt_descr;
extern void switch_to_new_gdt(int);
extern void load_direct_gdt(int);
diff --git a/arch/x86/include/asm/sev-es.h b/arch/x86/include/asm/sev-es.h
index 512d3ccb9832..caa29f75ce41 100644
--- a/arch/x86/include/asm/sev-es.h
+++ b/arch/x86/include/asm/sev-es.h
@@ -75,4 +75,6 @@ static inline u64 copy_lower_bits(u64 out, u64 in, unsigned int bits)
return out;
}
+extern void early_vc_handler(void);
+
#endif
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 8ccca109750d..b8613fc0a364 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -38,6 +38,7 @@
#include <asm/fixmap.h>
#include <asm/extable.h>
#include <asm/trap_defs.h>
+#include <asm/sev-es.h>
/*
* Manage page tables very early on.
@@ -515,3 +516,19 @@ void __head early_idt_setup_early_handler(unsigned long physaddr)
native_write_idt_entry(idt, i, &desc);
}
}
+
+void __head early_idt_setup(unsigned long physbase)
+{
+ gate_desc *idt = fixup_pointer(idt_table, physbase);
+ void __maybe_unused *handler;
+
+#ifdef CONFIG_AMD_MEM_ENCRYPT
+ /* VMM Communication Exception */
+ handler = fixup_pointer(early_vc_handler, physbase);
+ set_early_idt_handler(idt, X86_TRAP_VC, handler);
+#endif
+
+ /* Initialize IDT descriptor and load IDT */
+ early_idt_descr.address = (unsigned long)idt;
+ native_load_idt(&early_idt_descr);
+}
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index bc0622a72d6d..b3acecdabd34 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -92,6 +92,12 @@ SYM_CODE_START_NOALIGN(startup_64)
.Lon_kernel_cs:
UNWIND_HINT_EMPTY
+ /* Setup IDT - Needed for SEV-ES */
+ leaq _text(%rip), %rdi
+ pushq %rsi
+ call early_idt_setup
+ popq %rsi
+
/* Sanitize CPU configuration */
call verify_cpu
@@ -370,6 +376,33 @@ SYM_CODE_START_LOCAL(early_idt_handler_common)
jmp restore_regs_and_return_to_kernel
SYM_CODE_END(early_idt_handler_common)
+#ifdef CONFIG_AMD_MEM_ENCRYPT
+/*
+ * VC Exception handler used during very early boot. The
+ * early_idt_handler_array can't be used because it returns via the
+ * paravirtualized INTERRUPT_RETURN and pv-ops don't work that early.
+ */
+SYM_CODE_START_NOALIGN(early_vc_handler)
+ UNWIND_HINT_IRET_REGS offset=8
+
+ /* Build pt_regs */
+ PUSH_AND_CLEAR_REGS
+
+ /* Call C handler */
+ movq %rsp, %rdi
+ movq ORIG_RAX(%rsp), %rsi
+ call vc_no_ghcb_handler
+
+ /* Unwind pt_regs */
+ POP_REGS
+
+ /* Remove Error Code */
+ addq $8, %rsp
+
+ /* Pure iret required here - don't use INTERRUPT_RETURN */
+ iretq
+SYM_CODE_END(early_vc_handler)
+#endif
#define SYM_DATA_START_PAGE_ALIGNED(name) \
SYM_START(name, SYM_L_GLOBAL, .balign PAGE_SIZE)
@@ -511,6 +544,9 @@ SYM_DATA_END(level1_fixmap_pgt)
SYM_DATA(early_gdt_descr, .word GDT_ENTRIES*8-1)
SYM_DATA_LOCAL(early_gdt_descr_base, .quad INIT_PER_CPU_VAR(gdt_page))
+SYM_DATA(early_idt_descr, .word NUM_EXCEPTION_VECTORS * 16)
+SYM_DATA_LOCAL(early_idt_descr_base, .quad 0)
+
.align 16
/* This must match the first entry in level2_kernel_pgt */
SYM_DATA(phys_base, .quad 0x0)
diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c
index 4a2c7791c697..135d208a2d38 100644
--- a/arch/x86/kernel/idt.c
+++ b/arch/x86/kernel/idt.c
@@ -341,3 +341,13 @@ void alloc_intr_gate(unsigned int n, const void *addr)
if (!test_and_set_bit(n, system_vectors))
set_intr_gate(n, addr);
}
+
+void set_early_idt_handler(gate_desc *idt, int n, void *handler)
+{
+ struct idt_data data;
+ gate_desc desc;
+
+ init_idt_data(&data, n, handler);
+ idt_init_desc(&desc, &data);
+ native_write_idt_entry(idt, n, &desc);
+}
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: x86@kernel.org
Cc: hpa@zytor.com, Andy Lutomirski <luto@kernel.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Hellstrom <thellstrom@vmware.com>,
Jiri Slaby <jslaby@suse.cz>,
Dan Williams <dan.j.williams@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Juergen Gross <jgross@suse.com>,
Kees Cook <keescook@chromium.org>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org,
Joerg Roedel <joro@8bytes.org>, Joerg Roedel <jroedel@suse.de>
Subject: [PATCH 38/70] x86/sev-es: Setup early #VC handler
Date: Thu, 19 Mar 2020 10:13:35 +0100 [thread overview]
Message-ID: <20200319091407.1481-39-joro@8bytes.org> (raw)
In-Reply-To: <20200319091407.1481-1-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
Setup an early handler for #VC exceptions. There is no GHCB mapped
yet, so just re-use the vc_no_ghcb_handler. It can only handle CPUID
exit-codes, but that should be enough to get the kernel through
verify_cpu() and __startup_64() until it runs on virtual addresses.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
arch/x86/include/asm/desc.h | 1 +
arch/x86/include/asm/processor.h | 1 +
arch/x86/include/asm/sev-es.h | 2 ++
arch/x86/kernel/head64.c | 17 +++++++++++++++
arch/x86/kernel/head_64.S | 36 ++++++++++++++++++++++++++++++++
arch/x86/kernel/idt.c | 10 +++++++++
6 files changed, 67 insertions(+)
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index 80bf63c08007..30e2a0e863b6 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -388,6 +388,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
void update_intr_gate(unsigned int n, const void *addr);
void alloc_intr_gate(unsigned int n, const void *addr);
+void set_early_idt_handler(gate_desc *idt, int n, void *handler);
static inline void init_idt_data(struct idt_data *data, unsigned int n,
const void *addr)
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 09705ccc393c..4622427d01d4 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -768,6 +768,7 @@ extern int sysenter_setup(void);
/* Defined in head.S */
extern struct desc_ptr early_gdt_descr;
+extern struct desc_ptr early_idt_descr;
extern void switch_to_new_gdt(int);
extern void load_direct_gdt(int);
diff --git a/arch/x86/include/asm/sev-es.h b/arch/x86/include/asm/sev-es.h
index 512d3ccb9832..caa29f75ce41 100644
--- a/arch/x86/include/asm/sev-es.h
+++ b/arch/x86/include/asm/sev-es.h
@@ -75,4 +75,6 @@ static inline u64 copy_lower_bits(u64 out, u64 in, unsigned int bits)
return out;
}
+extern void early_vc_handler(void);
+
#endif
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 8ccca109750d..b8613fc0a364 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -38,6 +38,7 @@
#include <asm/fixmap.h>
#include <asm/extable.h>
#include <asm/trap_defs.h>
+#include <asm/sev-es.h>
/*
* Manage page tables very early on.
@@ -515,3 +516,19 @@ void __head early_idt_setup_early_handler(unsigned long physaddr)
native_write_idt_entry(idt, i, &desc);
}
}
+
+void __head early_idt_setup(unsigned long physbase)
+{
+ gate_desc *idt = fixup_pointer(idt_table, physbase);
+ void __maybe_unused *handler;
+
+#ifdef CONFIG_AMD_MEM_ENCRYPT
+ /* VMM Communication Exception */
+ handler = fixup_pointer(early_vc_handler, physbase);
+ set_early_idt_handler(idt, X86_TRAP_VC, handler);
+#endif
+
+ /* Initialize IDT descriptor and load IDT */
+ early_idt_descr.address = (unsigned long)idt;
+ native_load_idt(&early_idt_descr);
+}
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index bc0622a72d6d..b3acecdabd34 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -92,6 +92,12 @@ SYM_CODE_START_NOALIGN(startup_64)
.Lon_kernel_cs:
UNWIND_HINT_EMPTY
+ /* Setup IDT - Needed for SEV-ES */
+ leaq _text(%rip), %rdi
+ pushq %rsi
+ call early_idt_setup
+ popq %rsi
+
/* Sanitize CPU configuration */
call verify_cpu
@@ -370,6 +376,33 @@ SYM_CODE_START_LOCAL(early_idt_handler_common)
jmp restore_regs_and_return_to_kernel
SYM_CODE_END(early_idt_handler_common)
+#ifdef CONFIG_AMD_MEM_ENCRYPT
+/*
+ * VC Exception handler used during very early boot. The
+ * early_idt_handler_array can't be used because it returns via the
+ * paravirtualized INTERRUPT_RETURN and pv-ops don't work that early.
+ */
+SYM_CODE_START_NOALIGN(early_vc_handler)
+ UNWIND_HINT_IRET_REGS offset=8
+
+ /* Build pt_regs */
+ PUSH_AND_CLEAR_REGS
+
+ /* Call C handler */
+ movq %rsp, %rdi
+ movq ORIG_RAX(%rsp), %rsi
+ call vc_no_ghcb_handler
+
+ /* Unwind pt_regs */
+ POP_REGS
+
+ /* Remove Error Code */
+ addq $8, %rsp
+
+ /* Pure iret required here - don't use INTERRUPT_RETURN */
+ iretq
+SYM_CODE_END(early_vc_handler)
+#endif
#define SYM_DATA_START_PAGE_ALIGNED(name) \
SYM_START(name, SYM_L_GLOBAL, .balign PAGE_SIZE)
@@ -511,6 +544,9 @@ SYM_DATA_END(level1_fixmap_pgt)
SYM_DATA(early_gdt_descr, .word GDT_ENTRIES*8-1)
SYM_DATA_LOCAL(early_gdt_descr_base, .quad INIT_PER_CPU_VAR(gdt_page))
+SYM_DATA(early_idt_descr, .word NUM_EXCEPTION_VECTORS * 16)
+SYM_DATA_LOCAL(early_idt_descr_base, .quad 0)
+
.align 16
/* This must match the first entry in level2_kernel_pgt */
SYM_DATA(phys_base, .quad 0x0)
diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c
index 4a2c7791c697..135d208a2d38 100644
--- a/arch/x86/kernel/idt.c
+++ b/arch/x86/kernel/idt.c
@@ -341,3 +341,13 @@ void alloc_intr_gate(unsigned int n, const void *addr)
if (!test_and_set_bit(n, system_vectors))
set_intr_gate(n, addr);
}
+
+void set_early_idt_handler(gate_desc *idt, int n, void *handler)
+{
+ struct idt_data data;
+ gate_desc desc;
+
+ init_idt_data(&data, n, handler);
+ idt_init_desc(&desc, &data);
+ native_write_idt_entry(idt, n, &desc);
+}
--
2.17.1
next prev parent reply other threads:[~2020-03-19 9:13 UTC|newest]
Thread overview: 234+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-19 9:12 [RFC PATCH 00/70 v2] x86: SEV-ES Guest Support Joerg Roedel
2020-03-19 9:12 ` [PATCH 01/70] KVM: SVM: Add GHCB definitions Joerg Roedel
2020-03-19 9:12 ` Joerg Roedel
2020-03-23 13:23 ` [PATCH] KVM: SVM: Use __packed shorthard Borislav Petkov
2020-03-24 12:43 ` Joerg Roedel
2020-03-19 9:12 ` [PATCH 02/70] KVM: SVM: Add GHCB Accessor functions Joerg Roedel
2020-03-19 9:12 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 03/70] x86/cpufeatures: Add SEV-ES CPU feature Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 04/70] x86/traps: Move some definitions to <asm/trap_defs.h> Joerg Roedel
2020-03-19 9:13 ` [PATCH 05/70] x86/insn: Make inat-tables.c suitable for pre-decompression code Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-25 15:39 ` Borislav Petkov
2020-03-27 3:02 ` Masami Hiramatsu
2020-03-27 3:02 ` Masami Hiramatsu
2020-04-16 15:24 ` Joerg Roedel
2020-04-16 15:24 ` Joerg Roedel
2020-04-17 12:50 ` Masami Hiramatsu
2020-04-17 13:39 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 06/70] x86/umip: Factor out instruction fetch Joerg Roedel
2020-03-26 17:21 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 07/70] x86/umip: Factor out instruction decoding Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-26 17:24 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 08/70] x86/insn: Add insn_get_modrm_reg_off() Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-27 3:57 ` Masami Hiramatsu
2020-03-19 9:13 ` [PATCH 09/70] x86/insn: Add insn_rep_prefix() helper Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-27 3:56 ` Masami Hiramatsu
2020-03-19 9:13 ` [PATCH 10/70] x86/boot/compressed: Fix debug_puthex() parameter type Joerg Roedel
2020-03-28 11:23 ` [tip: x86/boot] " tip-bot2 for Joerg Roedel
2020-03-19 9:13 ` [PATCH 11/70] x86/boot/compressed/64: Disable red-zone usage Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-31 13:16 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 12/70] x86/boot/compressed/64: Add IDT Infrastructure Joerg Roedel
2020-04-07 2:21 ` Arvind Sankar
2020-04-16 13:30 ` Joerg Roedel
2020-04-16 13:30 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 13/70] x86/boot/compressed/64: Rename kaslr_64.c to ident_map_64.c Joerg Roedel
2020-03-19 9:13 ` [PATCH 14/70] x86/boot/compressed/64: Add page-fault handler Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-04-02 11:49 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 15/70] x86/boot/compressed/64: Always switch to own page-table Joerg Roedel
2020-04-06 11:56 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 16/70] x86/boot/compressed/64: Don't pre-map memory in KASLR code Joerg Roedel
2020-03-19 9:13 ` [PATCH 17/70] x86/boot/compressed/64: Change add_identity_map() to take start and end Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 18/70] x86/boot/compressed/64: Add stage1 #VC handler Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-20 21:16 ` David Rientjes
2020-03-20 22:19 ` Joerg Roedel
2020-04-06 12:41 ` Borislav Petkov
2020-03-19 9:13 ` [PATCH 19/70] x86/boot/compressed/64: Call set_sev_encryption_mask earlier Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 20/70] x86/boot/compressed/64: Check return value of kernel_ident_mapping_init() Joerg Roedel
2020-03-19 9:13 ` [PATCH 21/70] x86/boot/compressed/64: Add function to map a page unencrypted Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-20 20:53 ` David Rientjes
2020-03-20 21:02 ` Dave Hansen
2020-03-20 22:12 ` Joerg Roedel
2020-03-20 22:26 ` Dave Hansen
2020-03-21 15:40 ` Joerg Roedel
2020-03-21 15:40 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 22/70] x86/boot/compressed/64: Setup GHCB Based VC Exception handler Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 23/70] x86/sev-es: Add support for handling IOIO exceptions Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-20 21:03 ` David Rientjes
2020-03-20 22:24 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 24/70] x86/fpu: Move xgetbv()/xsetbv() into separate header Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 25/70] x86/sev-es: Add CPUID handling to #VC handler Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 26/70] x86/idt: Move IDT to data segment Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 27/70] x86/idt: Split idt_data setup out of set_intr_gate() Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 28/70] x86/idt: Move two function from k/idt.c to i/a/desc.h Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 29/70] x86/head/64: Install boot GDT Joerg Roedel
2020-03-19 9:13 ` [PATCH 30/70] x86/head/64: Reload GDT after switch to virtual addresses Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 31/70] x86/head/64: Load segment registers earlier Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 32/70] x86/head/64: Switch to initial stack earlier Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 33/70] x86/head/64: Build k/head64.c with -fno-stack-protector Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 34/70] x86/head/64: Load IDT earlier Joerg Roedel
2020-03-19 9:13 ` [PATCH 35/70] x86/head/64: Move early exception dispatch to C code Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 36/70] x86/sev-es: Add SEV-ES Feature Detection Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 37/70] x86/sev-es: Compile early handler code into kernel image Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel [this message]
2020-03-19 9:13 ` [PATCH 38/70] x86/sev-es: Setup early #VC handler Joerg Roedel
2020-03-19 9:13 ` [PATCH 39/70] x86/sev-es: Setup GHCB based boot " Joerg Roedel
2020-03-19 9:13 ` [PATCH 40/70] x86/sev-es: Setup per-cpu GHCBs for the runtime handler Joerg Roedel
2020-04-14 19:03 ` Mike Stunes
2020-04-14 20:04 ` Tom Lendacky
2020-04-14 20:12 ` Dave Hansen
2020-04-14 20:12 ` Dave Hansen
2020-04-14 20:16 ` Tom Lendacky
2020-04-14 20:18 ` Tom Lendacky
2020-04-15 15:54 ` Joerg Roedel
2020-04-15 15:53 ` Joerg Roedel
2020-04-23 1:33 ` Bo Gan
2020-04-23 11:30 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 41/70] x86/sev-es: Add Runtime #VC Exception Handler Joerg Roedel
2020-03-19 9:13 ` Joerg Roedel
2020-03-19 15:44 ` Andy Lutomirski
2020-03-19 16:24 ` Joerg Roedel
2020-03-19 18:43 ` Andy Lutomirski
2020-03-19 19:38 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 42/70] x86/sev-es: Support nested #VC exceptions Joerg Roedel
2020-03-19 15:46 ` Andy Lutomirski
2020-03-19 15:46 ` Andy Lutomirski
2020-03-19 16:12 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 43/70] x86/sev-es: Wire up existing #VC exit-code handlers Joerg Roedel
2020-03-19 9:13 ` [PATCH 44/70] x86/sev-es: Handle instruction fetches from user-space Joerg Roedel
2020-03-19 9:13 ` [PATCH 45/70] x86/sev-es: Harden runtime #VC handler for exceptions " Joerg Roedel
2020-03-19 9:13 ` [PATCH 46/70] x86/sev-es: Filter exceptions not supported " Joerg Roedel
2020-03-19 9:13 ` [PATCH 47/70] x86/sev-es: Handle MMIO events Joerg Roedel
2020-03-19 9:13 ` [PATCH 48/70] x86/sev-es: Handle MMIO String Instructions Joerg Roedel
2020-03-19 9:13 ` [PATCH 49/70] x86/sev-es: Handle MSR events Joerg Roedel
2020-03-19 9:13 ` [PATCH 50/70] x86/sev-es: Handle DR7 read/write events Joerg Roedel
2020-03-19 9:13 ` [PATCH 51/70] x86/sev-es: Handle WBINVD Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 52/70] x86/sev-es: Handle RDTSC Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 53/70] x86/sev-es: Handle RDPMC Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 54/70] x86/sev-es: Handle INVD Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 55/70] x86/sev-es: Handle RDTSCP Events Joerg Roedel
2020-04-24 21:03 ` [PATCH] Allow RDTSC and RDTSCP from userspace Mike Stunes
2020-04-24 21:03 ` Mike Stunes
2020-04-24 21:24 ` Dave Hansen
2020-04-24 21:27 ` Tom Lendacky
2020-04-24 22:53 ` Dave Hansen
2020-04-25 12:49 ` Joerg Roedel
2020-04-25 18:15 ` Andy Lutomirski
2020-04-25 19:10 ` Joerg Roedel
2020-04-25 19:47 ` Andy Lutomirski
2020-04-25 20:23 ` Joerg Roedel
2020-04-25 22:10 ` Andy Lutomirski
2020-04-27 17:37 ` Should SEV-ES #VC use IST? (Re: [PATCH] Allow RDTSC and RDTSCP from userspace) Andy Lutomirski
2020-04-27 18:15 ` Andrew Cooper
2020-04-27 18:43 ` Tom Lendacky
2020-04-28 7:55 ` Joerg Roedel
2020-04-28 16:34 ` Andrew Cooper
2020-06-23 11:07 ` Peter Zijlstra
2020-06-23 11:07 ` Peter Zijlstra
2020-06-23 11:30 ` Joerg Roedel
2020-06-23 11:48 ` Peter Zijlstra
2020-06-23 11:48 ` Peter Zijlstra
2020-06-23 12:04 ` Joerg Roedel
2020-06-23 12:52 ` Peter Zijlstra
2020-06-23 12:52 ` Peter Zijlstra
2020-06-23 13:40 ` Joerg Roedel
2020-06-23 13:40 ` Joerg Roedel
2020-06-23 13:59 ` Peter Zijlstra
2020-06-23 13:59 ` Peter Zijlstra
2020-06-23 14:53 ` Peter Zijlstra
2020-06-23 14:53 ` Peter Zijlstra
2020-06-23 14:59 ` Joerg Roedel
2020-06-23 15:23 ` Peter Zijlstra
2020-06-23 15:23 ` Peter Zijlstra
2020-06-23 15:38 ` Peter Zijlstra
2020-06-23 15:38 ` Peter Zijlstra
2020-06-23 15:38 ` Joerg Roedel
2020-06-23 16:02 ` Peter Zijlstra
2020-06-23 16:02 ` Peter Zijlstra
2020-06-23 15:39 ` Andrew Cooper
2020-06-23 15:52 ` Peter Zijlstra
2020-06-23 15:52 ` Peter Zijlstra
2020-06-23 16:03 ` Dave Hansen
2020-06-23 16:13 ` Peter Zijlstra
2020-06-23 16:13 ` Peter Zijlstra
2020-06-23 16:13 ` Borislav Petkov
2020-06-23 11:51 ` Andrew Cooper
2020-06-23 12:47 ` Peter Zijlstra
2020-06-23 12:47 ` Peter Zijlstra
2020-06-23 13:57 ` Andrew Cooper
2020-06-23 13:57 ` Andrew Cooper
2020-06-23 15:51 ` Borislav Petkov
2020-06-23 9:45 ` Joerg Roedel
2020-06-23 10:45 ` Peter Zijlstra
2020-06-23 11:11 ` Joerg Roedel
2020-06-23 11:14 ` Peter Zijlstra
2020-06-23 11:14 ` Peter Zijlstra
2020-06-23 11:43 ` Joerg Roedel
2020-06-23 11:50 ` Peter Zijlstra
2020-06-23 11:50 ` Peter Zijlstra
2020-06-23 12:12 ` Joerg Roedel
2020-06-23 13:03 ` Peter Zijlstra
2020-06-23 13:03 ` Peter Zijlstra
2020-06-23 14:49 ` Joerg Roedel
2020-06-23 15:16 ` Peter Zijlstra
2020-06-23 15:16 ` Peter Zijlstra
2020-06-23 15:32 ` Andrew Cooper
2020-06-23 16:10 ` Borislav Petkov
2020-06-23 15:22 ` Andrew Cooper
2020-06-23 18:26 ` Andy Lutomirski
2020-06-23 18:56 ` Andrew Cooper
2020-04-27 18:47 ` [PATCH] Allow RDTSC and RDTSCP from userspace Dave Hansen
2020-04-25 12:28 ` Joerg Roedel
2020-03-19 9:13 ` [PATCH 56/70] x86/sev-es: Handle MONITOR/MONITORX Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 57/70] x86/sev-es: Handle MWAIT/MWAITX Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 58/70] x86/sev-es: Handle VMMCALL Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 59/70] x86/sev-es: Handle #AC Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 60/70] x86/sev-es: Handle #DB Events Joerg Roedel
2020-03-19 9:13 ` [PATCH 61/70] x86/paravirt: Allow hypervisor specific VMMCALL handling under SEV-ES Joerg Roedel
2020-03-19 9:13 ` [PATCH 62/70] x86/kvm: Add KVM " Joerg Roedel
2020-03-20 21:23 ` David Rientjes
2020-03-20 22:21 ` Joerg Roedel
2020-03-19 9:14 ` [PATCH 63/70] x86/vmware: Add VMware specific handling for VMMCALL " Joerg Roedel
2020-03-19 10:18 ` Thomas Hellstrom
2020-03-19 9:14 ` [PATCH 64/70] x86/realmode: Add SEV-ES specific trampoline entry point Joerg Roedel
2020-03-19 9:14 ` [PATCH 65/70] x86/realmode: Setup AP jump table Joerg Roedel
2020-03-19 9:14 ` [PATCH 66/70] x86/head/64: Don't call verify_cpu() on starting APs Joerg Roedel
2020-03-19 9:14 ` [PATCH 67/70] x86/head/64: Rename start_cpu0 Joerg Roedel
2020-03-19 9:14 ` [PATCH 68/70] x86/sev-es: Support CPU offline/online Joerg Roedel
2020-03-19 9:14 ` [PATCH 69/70] x86/cpufeature: Add SEV_ES_GUEST CPU Feature Joerg Roedel
2020-03-19 9:14 ` [PATCH 70/70] x86/sev-es: Add NMI state tracking Joerg Roedel
2020-03-19 15:35 ` Andy Lutomirski
2020-03-19 16:07 ` Joerg Roedel
2020-03-19 18:40 ` Andy Lutomirski
2020-03-19 19:26 ` Joerg Roedel
2020-03-19 21:27 ` Andy Lutomirski
2020-03-20 19:48 ` Joerg Roedel
2020-03-20 13:17 ` [RFC PATCH v2.1] x86/sev-es: Handle NMI State Joerg Roedel
2020-03-20 14:42 ` Dave Hansen
2020-03-20 19:42 ` Joerg Roedel
2020-03-19 16:53 ` [PATCH 70/70] x86/sev-es: Add NMI state tracking Mika Penttilä
2020-03-19 19:41 ` Joerg Roedel
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=20200319091407.1481-39-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=jroedel@suse.de \
--cc=jslaby@suse.cz \
--cc=keescook@chromium.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@infradead.org \
--cc=thellstrom@vmware.com \
--cc=thomas.lendacky@amd.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=x86@kernel.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.