[PATCH 28/37] x86/mm/pti: Map kernel-text to user-space on 32 bit kernels

From: Joerg Roedel
Date: Mon Apr 23 2018 - 11:52:55 EST


From: Joerg Roedel <jroedel@xxxxxxx>

Keeping the kernel text mapped with G bit set keeps its
entries in the TLB across kernel entry/exit and improved the
performance. The 64 bit x86 kernels already do this when
there is no PCID, so do this in 32 bit as well since PCID is
not even supported there.

Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
---
arch/x86/mm/init_32.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index c893c6a..8299b98 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -956,4 +956,10 @@ void mark_rodata_ro(void)
mark_nxdata_nx();
if (__supported_pte_mask & _PAGE_NX)
debug_checkwx();
+
+ /*
+ * Do this after all of the manipulation of the
+ * kernel text page tables are complete.
+ */
+ pti_clone_kernel_text();
}
--
2.7.4