This is part II of ASI RFC v4. Please refer to the cover letter of part I for an overview the ASI RFC. https://lore.kernel.org/lkml/20200504144939.11318-1-alexandre.chartre@xxxxxxxxxx/ This part introduces decorated page-table which encapsulate native page table (e.g. a PGD) in order to provide convenient page-table management functions, such as tracking address range mapped in a page-table or safely handling references to another page-table. Decorated page-table can then be used to easily create and manage page tables to be used with ASI. It will be used by the ASI test driver (see part III) and later by KVM ASI. Decorated page-table is independent of ASI, and can potentially be used anywhere a page-table is needed. Thanks, alex. ----- Alexandre Chartre (13): mm/x86: Introduce decorated page-table (dpt) mm/dpt: Track buffers allocated for a decorated page-table mm/dpt: Add decorated page-table entry offset functions mm/dpt: Add decorated page-table entry allocation functions mm/dpt: Add decorated page-table entry set functions mm/dpt: Functions to populate a decorated page-table from a VA range mm/dpt: Helper functions to map module into a decorated page-table mm/dpt: Keep track of VA ranges mapped in a decorated page-table mm/dpt: Functions to clear decorated page-table entries for a VA range mm/dpt: Function to copy page-table entries for percpu buffer mm/dpt: Add decorated page-table remap function mm/dpt: Handle decorated page-table mapped range leaks and overlaps mm/asi: Function to init decorated page-table with ASI core mappings arch/x86/include/asm/asi.h | 2 + arch/x86/include/asm/dpt.h | 89 +++ arch/x86/mm/Makefile | 2 +- arch/x86/mm/asi.c | 57 ++ arch/x86/mm/dpt.c | 1051 ++++++++++++++++++++++++++++++++++++ 5 files changed, 1200 insertions(+), 1 deletion(-) create mode 100644 arch/x86/include/asm/dpt.h create mode 100644 arch/x86/mm/dpt.c -- 2.18.2