xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Tamas K Lengyel <tklengyel@sec.in.tum.de>
To: xen-devel@lists.xen.org
Cc: ian.campbell@citrix.com, tim@xen.org, julien.grall@linaro.org,
	ian.jackson@eu.citrix.com, stefano.stabellini@citrix.com,
	andres@lagarcavilla.org, jbeulich@suse.com,
	dgdegra@tycho.nsa.gov, Tamas K Lengyel <tklengyel@sec.in.tum.de>
Subject: [PATCH for-4.5 v10 00/19] Mem_event and mem_access for ARM
Date: Thu, 25 Sep 2014 13:56:33 +0200	[thread overview]
Message-ID: <1411646212-17041-1-git-send-email-tklengyel@sec.in.tum.de> (raw)

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 is based on staging and has been fully tested on both
an Arndale board and on Intel hardware.

This is version 10 of the series as two patches have already been sent as v9. I hope
this helps in the review process to see which patches are the latest.

This PATCH series is also available at:
https://github.com/tklengyel/xen/tree/arm_memaccess10

Julien Grall (1):
  xen/arm: Implement domain_get_maximum_gpfn

Tamas K Lengyel (18):
  xen: Relocate mem_access and mem_event into common.
  xen: Relocate struct npfec definition into common
  xen: Relocate p2m_access_t into common and swap the order
  xen: Relocate p2m_mem_access_resume to mem_access common
  xen: Relocate set_access_required domctl into common
  xen: Relocate mem_event_op domctl and access_op memop into common.
  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 changes for mem_access support
  xen/arm: Add p2m_set_permission and p2m_shatter_page helpers.
  xen/arm: Data abort exception (R/W) mem_events.
  xen/arm: Temporarily disable mem_access for hypervisor access
  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                    |   4 +
 config/x86_64.mk                    |   4 +
 tools/libxc/xc_dom_arm.c            |   6 +-
 tools/tests/xen-access/Makefile     |   9 +-
 tools/tests/xen-access/xen-access.c |  79 ++--
 xen/Rules.mk                        |   3 +
 xen/arch/arm/guestcopy.c            |  61 +++
 xen/arch/arm/mm.c                   |   2 +-
 xen/arch/arm/p2m.c                  | 549 ++++++++++++++++++++++----
 xen/arch/arm/traps.c                |  58 ++-
 xen/arch/x86/domctl.c               |  24 +-
 xen/arch/x86/hvm/hvm.c              |  63 +--
 xen/arch/x86/hvm/vmx/vmcs.c         |   8 +-
 xen/arch/x86/mm/Makefile            |   2 -
 xen/arch/x86/mm/hap/nested_ept.c    |   6 +-
 xen/arch/x86/mm/hap/nested_hap.c    |   8 +-
 xen/arch/x86/mm/mem_access.c        | 133 -------
 xen/arch/x86/mm/mem_event.c         | 716 ----------------------------------
 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               | 144 ++++---
 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                 |  24 ++
 xen/common/mem_access.c             | 159 ++++++++
 xen/common/mem_event.c              | 742 ++++++++++++++++++++++++++++++++++++
 xen/common/memory.c                 |  72 +++-
 xen/include/asm-arm/domain.h        |   1 +
 xen/include/asm-arm/mm.h            |   1 -
 xen/include/asm-arm/p2m.h           |  60 +++
 xen/include/asm-arm/processor.h     |  13 +-
 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           |  50 +--
 xen/include/xen/mem_access.h        |  65 ++++
 xen/include/xen/mem_event.h         | 143 +++++++
 xen/include/xen/mm.h                |  27 ++
 xen/include/xen/p2m-common.h        |  29 ++
 xen/include/xsm/dummy.h             |  26 +-
 xen/include/xsm/xsm.h               |  29 +-
 xen/xsm/dummy.c                     |   7 +-
 xen/xsm/flask/hooks.c               |  33 +-
 52 files changed, 2197 insertions(+), 1371 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

             reply	other threads:[~2014-09-25 11:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25 11:56 Tamas K Lengyel [this message]
2014-09-25 11:56 ` [PATCH for-4.5 v10 01/19] xen: Relocate mem_access and mem_event into common Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 02/19] xen: Relocate struct npfec definition " Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 03/19] xen: Relocate p2m_access_t into common and swap the order Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 04/19] xen: Relocate p2m_mem_access_resume to mem_access common Tamas K Lengyel
2014-09-25 18:59   ` Tim Deegan
2014-09-26 14:34   ` Jan Beulich
2014-09-26 19:54     ` Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 05/19] xen: Relocate set_access_required domctl into common Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 06/19] xen: Relocate mem_event_op domctl and access_op memop " Tamas K Lengyel
2014-09-25 18:59   ` Tim Deegan
2014-09-25 11:56 ` [PATCH for-4.5 v10 07/19] xen/mem_event: Clean out superfluous white-spaces Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 08/19] xen/mem_event: Relax error condition on debug builds Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 09/19] xen/mem_event: Abstract architecture specific sanity checks Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 10/19] xen/mem_access: Abstract architecture specific sanity check Tamas K Lengyel
2014-09-26 14:05   ` Jan Beulich
2014-09-25 11:56 ` [PATCH for-4.5 v10 11/19] xen/arm: p2m changes for mem_access support Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 12/19] xen/arm: Implement domain_get_maximum_gpfn Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 13/19] xen/arm: Add p2m_set_permission and p2m_shatter_page helpers Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 14/19] xen/arm: Data abort exception (R/W) mem_events Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 15/19] xen/arm: Temporarily disable mem_access for hypervisor access Tamas K Lengyel
2014-09-25 16:19   ` Julien Grall
2014-09-26  8:39     ` Tamas K Lengyel
2014-09-26 12:43       ` Julien Grall
2014-09-26 13:29         ` Tamas K Lengyel
2014-09-26 13:41           ` Julien Grall
2014-09-26 13:45             ` Tamas K Lengyel
2014-09-26 15:55   ` Ian Campbell
2014-09-25 11:56 ` [PATCH for-4.5 v10 16/19] xen/arm: Instruction prefetch abort (X) mem_event handling Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 17/19] xen/arm: Enable the compilation of mem_access and mem_event on ARM Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 18/19] tools/libxc: Allocate magic page for mem access " Tamas K Lengyel
2014-09-25 11:56 ` [PATCH for-4.5 v10 19/19] tools/tests: Enable xen-access " Tamas K Lengyel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1411646212-17041-1-git-send-email-tklengyel@sec.in.tum.de \
    --to=tklengyel@sec.in.tum.de \
    --cc=andres@lagarcavilla.org \
    --cc=dgdegra@tycho.nsa.gov \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=julien.grall@linaro.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).