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