[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.5 v6 00/17] Mem_event and mem_access for ARM
The ARM virtualization extension provides 2-stage paging, a similar mechanisms to Intel's EPT, which can be used to trace the memory accesses performed by the guest systems. This series moves the mem_access and mem_event codebase into Xen common, performs some code cleanup and architecture specific division of components, then sets up the necessary infrastructure in the ARM code to deliver the event on R/W/X traps. Finally, we turn on the compilation of mem_access and mem_event on ARM and perform the necessary changes to the tools side. This version of the series has been fully tested and is functional on an Arndale board. This PATCH series is also available at: https://github.com/tklengyel/xen/tree/arm_memaccess6 Tamas K Lengyel (17): xen: Relocate mem_access and mem_event into common. xen: Relocate p2m_mem_access_resume to mem_access common xen: Relocate struct npfec definition into common xen: Relocate mem_event_op domctl and access_op memop into common. x86/p2m: Typo fix for spelling ambiguous xen/mem_event: Clean out superfluous white-spaces xen/mem_event: Relax error condition on debug builds xen/mem_event: Abstract architecture specific sanity checks xen/mem_access: Abstract architecture specific sanity check xen/arm: p2m type definitions and changes xen/arm: Add set access required domctl xen/arm: Implement domain_get_maximum_gpfn xen/arm: Data abort exception (R/W) mem_events. xen/arm: Instruction prefetch abort (X) mem_event handling xen/arm: Enable the compilation of mem_access and mem_event on ARM. tools/libxc: Allocate magic page for mem access on ARM tools/tests: Enable xen-access on ARM MAINTAINERS | 6 + config/arm32.mk | 1 + config/arm64.mk | 1 + config/x86_32.mk | 2 + config/x86_64.mk | 2 + tools/libxc/xc_dom_arm.c | 6 +- tools/tests/xen-access/Makefile | 9 +- tools/tests/xen-access/xen-access.c | 79 ++-- xen/Rules.mk | 1 + xen/arch/arm/domctl.c | 13 + xen/arch/arm/mm.c | 2 +- xen/arch/arm/p2m.c | 546 +++++++++++++++++++++++---- xen/arch/arm/traps.c | 67 +++- xen/arch/x86/domctl.c | 10 +- xen/arch/x86/hvm/hvm.c | 63 +--- xen/arch/x86/mm/Makefile | 2 - xen/arch/x86/mm/hap/nested_ept.c | 6 +- xen/arch/x86/mm/hap/nested_hap.c | 6 +- xen/arch/x86/mm/mem_access.c | 133 ------- xen/arch/x86/mm/mem_event.c | 705 ----------------------------------- xen/arch/x86/mm/mem_paging.c | 2 +- xen/arch/x86/mm/mem_sharing.c | 4 +- xen/arch/x86/mm/p2m-pod.c | 8 +- xen/arch/x86/mm/p2m-pt.c | 10 +- xen/arch/x86/mm/p2m.c | 32 +- xen/arch/x86/x86_64/compat/mm.c | 8 +- xen/arch/x86/x86_64/mm.c | 8 +- xen/common/Makefile | 2 + xen/common/compat/memory.c | 5 + xen/common/domain.c | 1 + xen/common/domctl.c | 7 + xen/common/mem_access.c | 157 ++++++++ xen/common/mem_event.c | 723 ++++++++++++++++++++++++++++++++++++ xen/common/memory.c | 72 +++- xen/include/asm-arm/mm.h | 1 - xen/include/asm-arm/p2m.h | 108 +++++- xen/include/asm-arm/processor.h | 70 +++- xen/include/asm-x86/config.h | 6 + xen/include/asm-x86/hvm/hvm.h | 8 +- xen/include/asm-x86/mem_access.h | 39 -- xen/include/asm-x86/mem_event.h | 82 ---- xen/include/asm-x86/mm.h | 23 -- xen/include/asm-x86/p2m.h | 18 +- xen/include/xen/mem_access.h | 65 ++++ xen/include/xen/mem_event.h | 143 +++++++ xen/include/xen/mm.h | 27 ++ xen/include/xsm/dummy.h | 26 +- xen/include/xsm/xsm.h | 29 +- xen/xsm/dummy.c | 7 +- xen/xsm/flask/hooks.c | 33 +- 50 files changed, 2099 insertions(+), 1285 deletions(-) delete mode 100644 xen/arch/x86/mm/mem_access.c delete mode 100644 xen/arch/x86/mm/mem_event.c create mode 100644 xen/common/mem_access.c create mode 100644 xen/common/mem_event.c delete mode 100644 xen/include/asm-x86/mem_access.h delete mode 100644 xen/include/asm-x86/mem_event.h create mode 100644 xen/include/xen/mem_access.h create mode 100644 xen/include/xen/mem_event.h -- 2.1.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |