[patch V2 0/5] x86/kaiser: Boot time disabling and debug support

From: Thomas Gleixner
Date: Sun Nov 26 2017 - 18:26:45 EST


This patch series applies on top of

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

It contains the following updates:

- Don't set NX/PAGE_GLOBAL unconditionally

- Get rid of the compile time PAGE_GLOBAL disabling

- Add debug support for WX mappings in the KAISER shadow table

- Provide debug files to dump the kernel and the user page table for the
current task.

- Add a boot time switch to disable KAISER. This does not yet take care of
the 8k PGD allocations, but that can be done on top.

Changes vs. V1:

- Prevent setting PAGE_GLOBAL/NX when not supported or disabled

- Restructured the debug stuff a bit

- Extended the boot time disable to debug stuff

I tried to reenable paravirt by disabling kaiser at boot time when XEN_PV
is detected. XEN_PV is the only one having CR3 access paravirtualized,
which will explode nicely in the enter/exit code.

But enabling KAISER has some weird not yet debugged side effects even on
KVM guests. Will look at that tomorrow morning.

Thanks,

tglx

---
arch/x86/entry/calling.h | 7 +++
arch/x86/include/asm/kaiser.h | 10 ++++
arch/x86/include/asm/pgtable.h | 1
arch/x86/include/asm/pgtable_64.h | 9 +++
arch/x86/include/asm/pgtable_types.h | 16 ------
arch/x86/mm/debug_pagetables.c | 81 ++++++++++++++++++++++++++++++++---
arch/x86/mm/dump_pagetables.c | 32 +++++++++++--
arch/x86/mm/init.c | 14 ++++--
arch/x86/mm/kaiser.c | 42 +++++++++++++++++-
arch/x86/mm/pageattr.c | 16 +++---
security/Kconfig | 2
11 files changed, 190 insertions(+), 40 deletions(-)