[PATCH V4 00/10] xen: Switch to virtual mapped linear p2m list

From: Juergen Gross
Date: Fri Nov 28 2014 - 05:54:16 EST


Paravirtualized kernels running on Xen use a three level tree for
translation of guest specific physical addresses to machine global
addresses. This p2m tree is used for construction of page table
entries, so the p2m tree walk is performance critical.

By using a linear virtual mapped p2m list accesses to p2m elements
can be sped up while even simplifying code. To achieve this goal
some p2m related initializations have to be performed later in the
boot process, as the final p2m list can be set up only after basic
memory management functions are available.

Changes in V4:
- carved out style corrections into new patch 1 as requested by David Vrabel
- minor modification in patch 5 (former patch 3) as suggested by David Vrabel
- carved out change of page allocation scheme from p2m.c into own patch as
requested by Konrad Wilk, corrected for 32 bit as requested by Andrew Cooper
- added several comments
- simplified error handling in patch 4 (former patch 2)

Changes in V3:
- Carved out (new) patch 1 to make pure code movement more obvious
as requested by David Vrabel
- New patch 6 introducing __pfn_to_mfn() (taken from patch 7) as
requested by David Vrabel
- New patch 8 to speed up set_phys_to_machine() as suggested by
David Vrabel

Changes in V2:
- splitted patch 2 in 4 smaller ones as requested by David Vrabel
- added highmem check when remapping kernel memory as requested by
David Vrabel


Juergen Gross (10):
xen: fix some style issues in p2m.c
xen: Make functions static
xen: use common page allocation function in p2m.c
xen: Delay remapping memory of pv-domain
xen: Delay m2p_override initialization
xen: Delay invalidating extra memory
x86: Introduce function to get pmd entry pointer
xen: Hide get_phys_to_machine() to be able to tune common path
xen: switch to linear virtual mapped sparse p2m list
xen: Speed up set_phys_to_machine() by using read-only mappings

arch/x86/include/asm/pgtable_types.h | 1 +
arch/x86/include/asm/xen/page.h | 48 +-
arch/x86/mm/pageattr.c | 20 +
arch/x86/xen/mmu.c | 38 +-
arch/x86/xen/p2m.c | 1320 ++++++++++++++--------------------
arch/x86/xen/setup.c | 443 ++++++------
arch/x86/xen/xen-ops.h | 6 +-
7 files changed, 838 insertions(+), 1038 deletions(-)

--
2.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/