All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 0/4] x86/kaiser: Paravirt support and various fixlets
@ 2017-11-27 20:34 ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

The series contains the following changes against

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/asm

 - Remove the flush_tlb_single paravirt patching. It's not longer INVPCID
   anymore. Especially not with KAISER enabled.

 - Remove the !PARAVIRT dependency of KAISER and just disable it at boot
   time when the kernel runs as XEN_PV guest.

 - Address a few review comments.

Thanks,

	tglx
---
 arch/x86/include/asm/hypervisor.h   |   25 +++++++++++++++----------
 arch/x86/kernel/paravirt_patch_64.c |    2 --
 arch/x86/mm/debug_pagetables.c      |    6 +++---
 arch/x86/mm/dump_pagetables.c       |    6 ++++--
 arch/x86/mm/kaiser.c                |    3 +++
 security/Kconfig                    |    2 +-
 6 files changed, 26 insertions(+), 18 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 0/4] x86/kaiser: Paravirt support and various fixlets
@ 2017-11-27 20:34 ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

The series contains the following changes against

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/asm

 - Remove the flush_tlb_single paravirt patching. It's not longer INVPCID
   anymore. Especially not with KAISER enabled.

 - Remove the !PARAVIRT dependency of KAISER and just disable it at boot
   time when the kernel runs as XEN_PV guest.

 - Address a few review comments.

Thanks,

	tglx
---
 arch/x86/include/asm/hypervisor.h   |   25 +++++++++++++++----------
 arch/x86/kernel/paravirt_patch_64.c |    2 --
 arch/x86/mm/debug_pagetables.c      |    6 +++---
 arch/x86/mm/dump_pagetables.c       |    6 ++++--
 arch/x86/mm/kaiser.c                |    3 +++
 security/Kconfig                    |    2 +-
 6 files changed, 26 insertions(+), 18 deletions(-)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
  2017-11-27 20:34 ` Thomas Gleixner
@ 2017-11-27 20:34   ` Thomas Gleixner
  -1 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-paravirt--Dont-patch-flush_tlb_single.patch --]
[-- Type: text/plain, Size: 1316 bytes --]

native_flush_tlb_single() is not just INLVPG anymore. With
X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
mapping. But even with KAISER disabled flushing the particular ASID is the
right thing to do.

Remove the paravirt patching for it.

Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/paravirt_patch_64.c |    2 --
 1 file changed, 2 deletions(-)

--- a/arch/x86/kernel/paravirt_patch_64.c
+++ b/arch/x86/kernel/paravirt_patch_64.c
@@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
-DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
 
 DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
@@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
 		PATCH_SITE(pv_mmu_ops, read_cr2);
 		PATCH_SITE(pv_mmu_ops, read_cr3);
 		PATCH_SITE(pv_mmu_ops, write_cr3);
-		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
 		PATCH_SITE(pv_cpu_ops, wbinvd);
 #if defined(CONFIG_PARAVIRT_SPINLOCKS)
 		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
@ 2017-11-27 20:34   ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-paravirt--Dont-patch-flush_tlb_single.patch --]
[-- Type: text/plain, Size: 1543 bytes --]

native_flush_tlb_single() is not just INLVPG anymore. With
X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
mapping. But even with KAISER disabled flushing the particular ASID is the
right thing to do.

Remove the paravirt patching for it.

Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/paravirt_patch_64.c |    2 --
 1 file changed, 2 deletions(-)

--- a/arch/x86/kernel/paravirt_patch_64.c
+++ b/arch/x86/kernel/paravirt_patch_64.c
@@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
-DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
 
 DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
@@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
 		PATCH_SITE(pv_mmu_ops, read_cr2);
 		PATCH_SITE(pv_mmu_ops, read_cr3);
 		PATCH_SITE(pv_mmu_ops, write_cr3);
-		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
 		PATCH_SITE(pv_cpu_ops, wbinvd);
 #if defined(CONFIG_PARAVIRT_SPINLOCKS)
 		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 2/4] x86/kaiser: Enable PARAVIRT again
  2017-11-27 20:34 ` Thomas Gleixner
@ 2017-11-27 20:34   ` Thomas Gleixner
  -1 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-kaiser-xen--Runtime-disable-kaiser-on-XEN_PV-guests.patch --]
[-- Type: text/plain, Size: 2745 bytes --]

XEN_PV paravirtualizes read/write_c3. This does not work with KAISER as the
CR3 switch from and to user space PGD would require to map the whole XEN_PV
machinery into both. It's also not clear whether the register space is
sufficient to do so. All other PV guests use the native implementations and
are compatible with KAISER.

Add detection for XEN_PV and disable KAISER in the early boot process when
the kernel is running as a XEN_PV guest.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/include/asm/hypervisor.h |   25 +++++++++++++++----------
 arch/x86/mm/kaiser.c              |    3 +++
 security/Kconfig                  |    2 +-
 3 files changed, 19 insertions(+), 11 deletions(-)

--- a/arch/x86/include/asm/hypervisor.h
+++ b/arch/x86/include/asm/hypervisor.h
@@ -20,16 +20,7 @@
 #ifndef _ASM_X86_HYPERVISOR_H
 #define _ASM_X86_HYPERVISOR_H
 
-#ifdef CONFIG_HYPERVISOR_GUEST
-
-#include <asm/kvm_para.h>
-#include <asm/x86_init.h>
-#include <asm/xen/hypervisor.h>
-
-/*
- * x86 hypervisor information
- */
-
+/* x86 hypervisor types  */
 enum x86_hypervisor_type {
 	X86_HYPER_NATIVE = 0,
 	X86_HYPER_VMWARE,
@@ -39,6 +30,12 @@ enum x86_hypervisor_type {
 	X86_HYPER_KVM,
 };
 
+#ifdef CONFIG_HYPERVISOR_GUEST
+
+#include <asm/kvm_para.h>
+#include <asm/x86_init.h>
+#include <asm/xen/hypervisor.h>
+
 struct hypervisor_x86 {
 	/* Hypervisor name */
 	const char	*name;
@@ -58,7 +55,15 @@ struct hypervisor_x86 {
 
 extern enum x86_hypervisor_type x86_hyper_type;
 extern void init_hypervisor_platform(void);
+static inline bool hypervisor_is_type(enum x86_hypervisor_type type)
+{
+	return x86_hyper_type == type;
+}
 #else
 static inline void init_hypervisor_platform(void) { }
+static inline bool hypervisor_is_type(enum x86_hypervisor_type type)
+{
+	return type == X86_HYPER_NATIVE;
+}
 #endif /* CONFIG_HYPERVISOR_GUEST */
 #endif /* _ASM_X86_HYPERVISOR_H */
--- a/arch/x86/mm/kaiser.c
+++ b/arch/x86/mm/kaiser.c
@@ -34,6 +34,7 @@
 #include <linux/mm.h>
 #include <linux/uaccess.h>
 
+#include <asm/hypervisor.h>
 #include <asm/cmdline.h>
 #include <asm/kaiser.h>
 #include <asm/pgtable.h>
@@ -53,6 +54,8 @@ void __init kaiser_check_cmdline(void)
 {
 	if (cmdline_find_option_bool(boot_command_line, "nokaiser"))
 		kaiser_enabled = false;
+	if (hypervisor_is_type(X86_HYPER_XEN_PV))
+		kaiser_enabled = false;
 }
 
 /*
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -56,7 +56,7 @@ config SECURITY_NETWORK
 
 config KAISER
 	bool "Remove the kernel mapping in user mode"
-	depends on X86_64 && SMP && !PARAVIRT && JUMP_LABEL
+	depends on X86_64 && SMP && JUMP_LABEL
 	help
 	  This feature reduces the number of hardware side channels by
 	  ensuring that the majority of kernel addresses are not mapped

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 2/4] x86/kaiser: Enable PARAVIRT again
@ 2017-11-27 20:34   ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-kaiser-xen--Runtime-disable-kaiser-on-XEN_PV-guests.patch --]
[-- Type: text/plain, Size: 2972 bytes --]

XEN_PV paravirtualizes read/write_c3. This does not work with KAISER as the
CR3 switch from and to user space PGD would require to map the whole XEN_PV
machinery into both. It's also not clear whether the register space is
sufficient to do so. All other PV guests use the native implementations and
are compatible with KAISER.

Add detection for XEN_PV and disable KAISER in the early boot process when
the kernel is running as a XEN_PV guest.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/include/asm/hypervisor.h |   25 +++++++++++++++----------
 arch/x86/mm/kaiser.c              |    3 +++
 security/Kconfig                  |    2 +-
 3 files changed, 19 insertions(+), 11 deletions(-)

--- a/arch/x86/include/asm/hypervisor.h
+++ b/arch/x86/include/asm/hypervisor.h
@@ -20,16 +20,7 @@
 #ifndef _ASM_X86_HYPERVISOR_H
 #define _ASM_X86_HYPERVISOR_H
 
-#ifdef CONFIG_HYPERVISOR_GUEST
-
-#include <asm/kvm_para.h>
-#include <asm/x86_init.h>
-#include <asm/xen/hypervisor.h>
-
-/*
- * x86 hypervisor information
- */
-
+/* x86 hypervisor types  */
 enum x86_hypervisor_type {
 	X86_HYPER_NATIVE = 0,
 	X86_HYPER_VMWARE,
@@ -39,6 +30,12 @@ enum x86_hypervisor_type {
 	X86_HYPER_KVM,
 };
 
+#ifdef CONFIG_HYPERVISOR_GUEST
+
+#include <asm/kvm_para.h>
+#include <asm/x86_init.h>
+#include <asm/xen/hypervisor.h>
+
 struct hypervisor_x86 {
 	/* Hypervisor name */
 	const char	*name;
@@ -58,7 +55,15 @@ struct hypervisor_x86 {
 
 extern enum x86_hypervisor_type x86_hyper_type;
 extern void init_hypervisor_platform(void);
+static inline bool hypervisor_is_type(enum x86_hypervisor_type type)
+{
+	return x86_hyper_type == type;
+}
 #else
 static inline void init_hypervisor_platform(void) { }
+static inline bool hypervisor_is_type(enum x86_hypervisor_type type)
+{
+	return type == X86_HYPER_NATIVE;
+}
 #endif /* CONFIG_HYPERVISOR_GUEST */
 #endif /* _ASM_X86_HYPERVISOR_H */
--- a/arch/x86/mm/kaiser.c
+++ b/arch/x86/mm/kaiser.c
@@ -34,6 +34,7 @@
 #include <linux/mm.h>
 #include <linux/uaccess.h>
 
+#include <asm/hypervisor.h>
 #include <asm/cmdline.h>
 #include <asm/kaiser.h>
 #include <asm/pgtable.h>
@@ -53,6 +54,8 @@ void __init kaiser_check_cmdline(void)
 {
 	if (cmdline_find_option_bool(boot_command_line, "nokaiser"))
 		kaiser_enabled = false;
+	if (hypervisor_is_type(X86_HYPER_XEN_PV))
+		kaiser_enabled = false;
 }
 
 /*
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -56,7 +56,7 @@ config SECURITY_NETWORK
 
 config KAISER
 	bool "Remove the kernel mapping in user mode"
-	depends on X86_64 && SMP && !PARAVIRT && JUMP_LABEL
+	depends on X86_64 && SMP && JUMP_LABEL
 	help
 	  This feature reduces the number of hardware side channels by
 	  ensuring that the majority of kernel addresses are not mapped


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 3/4] x86/mm/debug_pagetables: Use octal file permissions
  2017-11-27 20:34 ` Thomas Gleixner
@ 2017-11-27 20:34   ` Thomas Gleixner
  -1 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-mm-debug_pagetables--Use-octal-file-permissions.patch --]
[-- Type: text/plain, Size: 1099 bytes --]

As equested by several reviewers.

Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/mm/debug_pagetables.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/x86/mm/debug_pagetables.c
+++ b/arch/x86/mm/debug_pagetables.c
@@ -81,18 +81,18 @@ static void pt_dump_debug_remove_files(v
 
 static int __init pt_dump_debug_init(void)
 {
-	pe_knl = debugfs_create_file("kernel_page_tables", S_IRUSR, NULL, NULL,
+	pe_knl = debugfs_create_file("kernel_page_tables", 0400, NULL, NULL,
 				     &ptdump_fops);
 	if (!pe_knl)
 		return -ENOMEM;
 
-	pe_curknl = debugfs_create_file("current_page_tables_knl", S_IRUSR,
+	pe_curknl = debugfs_create_file("current_page_tables_knl", 0400,
 					NULL, NULL, &ptdump_curknl_fops);
 	if (!pe_curknl)
 		goto err;
 
 #ifdef CONFIG_KAISER
-	pe_curusr = debugfs_create_file("current_page_tables_usr", S_IRUSR,
+	pe_curusr = debugfs_create_file("current_page_tables_usr", 0400,
 					NULL, NULL, &ptdump_curusr_fops);
 	if (!pe_curusr)
 		goto err;

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 3/4] x86/mm/debug_pagetables: Use octal file permissions
@ 2017-11-27 20:34   ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-mm-debug_pagetables--Use-octal-file-permissions.patch --]
[-- Type: text/plain, Size: 1326 bytes --]

As equested by several reviewers.

Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/mm/debug_pagetables.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/x86/mm/debug_pagetables.c
+++ b/arch/x86/mm/debug_pagetables.c
@@ -81,18 +81,18 @@ static void pt_dump_debug_remove_files(v
 
 static int __init pt_dump_debug_init(void)
 {
-	pe_knl = debugfs_create_file("kernel_page_tables", S_IRUSR, NULL, NULL,
+	pe_knl = debugfs_create_file("kernel_page_tables", 0400, NULL, NULL,
 				     &ptdump_fops);
 	if (!pe_knl)
 		return -ENOMEM;
 
-	pe_curknl = debugfs_create_file("current_page_tables_knl", S_IRUSR,
+	pe_curknl = debugfs_create_file("current_page_tables_knl", 0400,
 					NULL, NULL, &ptdump_curknl_fops);
 	if (!pe_curknl)
 		goto err;
 
 #ifdef CONFIG_KAISER
-	pe_curusr = debugfs_create_file("current_page_tables_usr", S_IRUSR,
+	pe_curusr = debugfs_create_file("current_page_tables_usr", 0400,
 					NULL, NULL, &ptdump_curusr_fops);
 	if (!pe_curusr)
 		goto err;


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 4/4] x86/mm/dump_pagetables: Use helper to get the shadow PGD
  2017-11-27 20:34 ` Thomas Gleixner
@ 2017-11-27 20:34   ` Thomas Gleixner
  -1 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-mm-dump_pagetables--Use-helper-to-get-the-shadow-PGD.patch --]
[-- Type: text/plain, Size: 1157 bytes --]

Use kernel_to_shadow_pgdp() instead of open coding it.

Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
Fixes: 04bafab4b2ee ("x86/mm/dump_pagetables: Check Kaiser shadow page table for WX pages")
Requested-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/mm/dump_pagetables.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -504,8 +504,10 @@ void ptdump_walk_pgd_level(struct seq_fi
 
 void ptdump_walk_pgd_level_debugfs(struct seq_file *m, pgd_t *pgd, bool shadow)
 {
+#ifdef CONFIG_KAISER
 	if (shadow && kaiser_enabled)
-		pgd += PTRS_PER_PGD;
+		pgd = kernel_to_shadow_pgdp(pgd);
+#endif
 	ptdump_walk_pgd_level_core(m, pgd, false, false);
 }
 EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs);
@@ -518,7 +520,7 @@ void ptdump_walk_shadow_pgd_level_checkw
 	if (!kaiser_enabled)
 		return;
 	pr_info("x86/mm: Checking shadow page tables\n");
-	pgd += PTRS_PER_PGD;
+	pgd = kernel_to_shadow_pgdp(pgd);
 	ptdump_walk_pgd_level_core(NULL, pgd, true, false);
 #endif
 }

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [patch 4/4] x86/mm/dump_pagetables: Use helper to get the shadow PGD
@ 2017-11-27 20:34   ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2017-11-27 20:34 UTC (permalink / raw)
  To: LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Juergen Gross, Boris Ostrovsky

[-- Attachment #1: x86-mm-dump_pagetables--Use-helper-to-get-the-shadow-PGD.patch --]
[-- Type: text/plain, Size: 1384 bytes --]

Use kernel_to_shadow_pgdp() instead of open coding it.

Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
Fixes: 04bafab4b2ee ("x86/mm/dump_pagetables: Check Kaiser shadow page table for WX pages")
Requested-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/mm/dump_pagetables.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -504,8 +504,10 @@ void ptdump_walk_pgd_level(struct seq_fi
 
 void ptdump_walk_pgd_level_debugfs(struct seq_file *m, pgd_t *pgd, bool shadow)
 {
+#ifdef CONFIG_KAISER
 	if (shadow && kaiser_enabled)
-		pgd += PTRS_PER_PGD;
+		pgd = kernel_to_shadow_pgdp(pgd);
+#endif
 	ptdump_walk_pgd_level_core(m, pgd, false, false);
 }
 EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs);
@@ -518,7 +520,7 @@ void ptdump_walk_shadow_pgd_level_checkw
 	if (!kaiser_enabled)
 		return;
 	pr_info("x86/mm: Checking shadow page tables\n");
-	pgd += PTRS_PER_PGD;
+	pgd = kernel_to_shadow_pgdp(pgd);
 	ptdump_walk_pgd_level_core(NULL, pgd, true, false);
 #endif
 }


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
  2017-11-27 20:34   ` Thomas Gleixner
@ 2017-11-27 21:01     ` Peter Zijlstra
  -1 siblings, 0 replies; 18+ messages in thread
From: Peter Zijlstra @ 2017-11-27 21:01 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:17PM +0100, Thomas Gleixner wrote:
> native_flush_tlb_single() is not just INLVPG anymore. With
> X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
> mapping. But even with KAISER disabled flushing the particular ASID is the
> right thing to do.
> 
> Remove the paravirt patching for it.
> 
> Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Argh!! Yes quite.

ACK

> ---
>  arch/x86/kernel/paravirt_patch_64.c |    2 --
>  1 file changed, 2 deletions(-)
> 
> --- a/arch/x86/kernel/paravirt_patch_64.c
> +++ b/arch/x86/kernel/paravirt_patch_64.c
> @@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
>  DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
>  DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
>  DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
> -DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
>  DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
>  
>  DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
> @@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
>  		PATCH_SITE(pv_mmu_ops, read_cr2);
>  		PATCH_SITE(pv_mmu_ops, read_cr3);
>  		PATCH_SITE(pv_mmu_ops, write_cr3);
> -		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
>  		PATCH_SITE(pv_cpu_ops, wbinvd);
>  #if defined(CONFIG_PARAVIRT_SPINLOCKS)
>  		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
> 
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
@ 2017-11-27 21:01     ` Peter Zijlstra
  0 siblings, 0 replies; 18+ messages in thread
From: Peter Zijlstra @ 2017-11-27 21:01 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:17PM +0100, Thomas Gleixner wrote:
> native_flush_tlb_single() is not just INLVPG anymore. With
> X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
> mapping. But even with KAISER disabled flushing the particular ASID is the
> right thing to do.
> 
> Remove the paravirt patching for it.
> 
> Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Argh!! Yes quite.

ACK

> ---
>  arch/x86/kernel/paravirt_patch_64.c |    2 --
>  1 file changed, 2 deletions(-)
> 
> --- a/arch/x86/kernel/paravirt_patch_64.c
> +++ b/arch/x86/kernel/paravirt_patch_64.c
> @@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
>  DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
>  DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
>  DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
> -DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
>  DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
>  
>  DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
> @@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
>  		PATCH_SITE(pv_mmu_ops, read_cr2);
>  		PATCH_SITE(pv_mmu_ops, read_cr3);
>  		PATCH_SITE(pv_mmu_ops, write_cr3);
> -		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
>  		PATCH_SITE(pv_cpu_ops, wbinvd);
>  #if defined(CONFIG_PARAVIRT_SPINLOCKS)
>  		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
> 
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 3/4] x86/mm/debug_pagetables: Use octal file permissions
  2017-11-27 20:34   ` Thomas Gleixner
@ 2017-11-27 21:01     ` Peter Zijlstra
  -1 siblings, 0 replies; 18+ messages in thread
From: Peter Zijlstra @ 2017-11-27 21:01 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:19PM +0100, Thomas Gleixner wrote:
> As equested by several reviewers.
> 
> Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Thanks! ACK

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 3/4] x86/mm/debug_pagetables: Use octal file permissions
@ 2017-11-27 21:01     ` Peter Zijlstra
  0 siblings, 0 replies; 18+ messages in thread
From: Peter Zijlstra @ 2017-11-27 21:01 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:19PM +0100, Thomas Gleixner wrote:
> As equested by several reviewers.
> 
> Fixes: ca646ac417b8 ("x86/mm/debug_pagetables: Allow dumping current pagetables")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Thanks! ACK

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
  2017-11-27 20:34   ` Thomas Gleixner
@ 2017-11-27 21:13     ` Josh Poimboeuf
  -1 siblings, 0 replies; 18+ messages in thread
From: Josh Poimboeuf @ 2017-11-27 21:13 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Linus Torvalds,
	Peter Zijlstra, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:17PM +0100, Thomas Gleixner wrote:
> native_flush_tlb_single() is not just INLVPG anymore. With
> X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
> mapping. But even with KAISER disabled flushing the particular ASID is the
> right thing to do.
> 
> Remove the paravirt patching for it.
> 
> Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/x86/kernel/paravirt_patch_64.c |    2 --
>  1 file changed, 2 deletions(-)
> 
> --- a/arch/x86/kernel/paravirt_patch_64.c
> +++ b/arch/x86/kernel/paravirt_patch_64.c
> @@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
>  DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
>  DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
>  DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
> -DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
>  DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
>  
>  DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
> @@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
>  		PATCH_SITE(pv_mmu_ops, read_cr2);
>  		PATCH_SITE(pv_mmu_ops, read_cr3);
>  		PATCH_SITE(pv_mmu_ops, write_cr3);
> -		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
>  		PATCH_SITE(pv_cpu_ops, wbinvd);
>  #if defined(CONFIG_PARAVIRT_SPINLOCKS)
>  		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):

Nice find!

Reviewed-and-tested-by: Josh Poimboeuf <jpoimboe@redhat.com>

-- 
Josh

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 1/4] x86/paravirt: Dont patch flush_tlb_single
@ 2017-11-27 21:13     ` Josh Poimboeuf
  0 siblings, 0 replies; 18+ messages in thread
From: Josh Poimboeuf @ 2017-11-27 21:13 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Linus Torvalds,
	Peter Zijlstra, Rik van Riel, daniel.gruss, hughd, keescook,
	linux-mm, michael.schwarz, moritz.lipp, richard.fellner,
	Juergen Gross, Boris Ostrovsky

On Mon, Nov 27, 2017 at 09:34:17PM +0100, Thomas Gleixner wrote:
> native_flush_tlb_single() is not just INLVPG anymore. With
> X86_FEATURE_INVPCID_SINGLE and KAISER enabled it flushes also the shadow
> mapping. But even with KAISER disabled flushing the particular ASID is the
> right thing to do.
> 
> Remove the paravirt patching for it.
> 
> Fixes: 1fde25dc8ef4 ("x86/mm/kaiser: Use PCID feature to make user and kernel switches faster")
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/x86/kernel/paravirt_patch_64.c |    2 --
>  1 file changed, 2 deletions(-)
> 
> --- a/arch/x86/kernel/paravirt_patch_64.c
> +++ b/arch/x86/kernel/paravirt_patch_64.c
> @@ -10,7 +10,6 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq;
>  DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
>  DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
>  DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
> -DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
>  DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
>  
>  DEF_NATIVE(pv_cpu_ops, usergs_sysret64, "swapgs; sysretq");
> @@ -60,7 +59,6 @@ unsigned native_patch(u8 type, u16 clobb
>  		PATCH_SITE(pv_mmu_ops, read_cr2);
>  		PATCH_SITE(pv_mmu_ops, read_cr3);
>  		PATCH_SITE(pv_mmu_ops, write_cr3);
> -		PATCH_SITE(pv_mmu_ops, flush_tlb_single);
>  		PATCH_SITE(pv_cpu_ops, wbinvd);
>  #if defined(CONFIG_PARAVIRT_SPINLOCKS)
>  		case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):

Nice find!

Reviewed-and-tested-by: Josh Poimboeuf <jpoimboe@redhat.com>

-- 
Josh

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 2/4] x86/kaiser: Enable PARAVIRT again
  2017-11-27 20:34   ` Thomas Gleixner
@ 2017-11-28  6:47     ` Juergen Gross
  -1 siblings, 0 replies; 18+ messages in thread
From: Juergen Gross @ 2017-11-28  6:47 UTC (permalink / raw)
  To: Thomas Gleixner, LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Boris Ostrovsky

On 27/11/17 21:34, Thomas Gleixner wrote:
> XEN_PV paravirtualizes read/write_c3. This does not work with KAISER as the
> CR3 switch from and to user space PGD would require to map the whole XEN_PV
> machinery into both. It's also not clear whether the register space is
> sufficient to do so. All other PV guests use the native implementations and
> are compatible with KAISER.
> 
> Add detection for XEN_PV and disable KAISER in the early boot process when
> the kernel is running as a XEN_PV guest.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [patch 2/4] x86/kaiser: Enable PARAVIRT again
@ 2017-11-28  6:47     ` Juergen Gross
  0 siblings, 0 replies; 18+ messages in thread
From: Juergen Gross @ 2017-11-28  6:47 UTC (permalink / raw)
  To: Thomas Gleixner, LKML
  Cc: Dave Hansen, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
	Brian Gerst, Denys Vlasenko, H. Peter Anvin, Josh Poimboeuf,
	Linus Torvalds, Peter Zijlstra, Rik van Riel, daniel.gruss,
	hughd, keescook, linux-mm, michael.schwarz, moritz.lipp,
	richard.fellner, Boris Ostrovsky

On 27/11/17 21:34, Thomas Gleixner wrote:
> XEN_PV paravirtualizes read/write_c3. This does not work with KAISER as the
> CR3 switch from and to user space PGD would require to map the whole XEN_PV
> machinery into both. It's also not clear whether the register space is
> sufficient to do so. All other PV guests use the native implementations and
> are compatible with KAISER.
> 
> Add detection for XEN_PV and disable KAISER in the early boot process when
> the kernel is running as a XEN_PV guest.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2017-11-28  6:47 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-27 20:34 [patch 0/4] x86/kaiser: Paravirt support and various fixlets Thomas Gleixner
2017-11-27 20:34 ` Thomas Gleixner
2017-11-27 20:34 ` [patch 1/4] x86/paravirt: Dont patch flush_tlb_single Thomas Gleixner
2017-11-27 20:34   ` Thomas Gleixner
2017-11-27 21:01   ` Peter Zijlstra
2017-11-27 21:01     ` Peter Zijlstra
2017-11-27 21:13   ` Josh Poimboeuf
2017-11-27 21:13     ` Josh Poimboeuf
2017-11-27 20:34 ` [patch 2/4] x86/kaiser: Enable PARAVIRT again Thomas Gleixner
2017-11-27 20:34   ` Thomas Gleixner
2017-11-28  6:47   ` Juergen Gross
2017-11-28  6:47     ` Juergen Gross
2017-11-27 20:34 ` [patch 3/4] x86/mm/debug_pagetables: Use octal file permissions Thomas Gleixner
2017-11-27 20:34   ` Thomas Gleixner
2017-11-27 21:01   ` Peter Zijlstra
2017-11-27 21:01     ` Peter Zijlstra
2017-11-27 20:34 ` [patch 4/4] x86/mm/dump_pagetables: Use helper to get the shadow PGD Thomas Gleixner
2017-11-27 20:34   ` Thomas Gleixner

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.