[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v10 00/12] Implement the XEN_DOMCTL_memory_mapping hypercall for ARM


here I am finally with the tenth version of my implementation proposal for the
memory_mapping DOMCTL for the ARM architecture. As I did for the previous
versions, I'll try to keep this cover letter as short as I can by listing here
only the most relevant changes, while a more detailed description can be found
in the description and changelog that comes with each of the patches. More
detailed information about the patch series' genesis can be found in the last
full cover letter ([1]).
Please note that the second and third patches of the v9 series have been merged
by Ian Campbell ([2]) as they resulted in an interface change that would have
clashed with other upcoming merges.

Patch 0001 has been fixed according to directives given by Julien Grall and
Ian Campbell; the main change is in the fact that now the ARM-related code
handling the removal of an I/O-memory mapping follows a behavior which matches
the one introduced for x86 by patch 0003: in case the given machine frame
number is mapped to an unexpected guest frame number, it emits a warning and
still destroys the mapping.

Patch 0002 has been modified according to suggestions given by Ian Campbell;
now in case that the insertion of a new I/O-memory mapping fails (even if only
partially) the whole range is unmapped.

Coding style issues existing in patch 0006 and pointed out by Jan Beulich have
been hopefully addressed here.

A patch 0010 has been added that moves libxl's PCI-related macros, previously
kept in the libxl_pci.c file, to a header file.

After some discussion involving Ian Campbell, Jan Beulich and Sander Eikelenboom
patch 0011 has been changed according to directives from Ian Campbell. Now the
I/O-memory areas needed to passthrough a VGA device in addition to PCI-related
ones are made accessible to any guest having gfx_passthru set to true in its
config and at least one passthru PCI device having a device class of 0x030000
(which should identify it as a VGA device).

The code has again been tested on a cubieboard2, with Linux v3.15-rc3 as a dom0
and ERIKA Enterprise ([3]) as a domU. The x86 bits have been tested on an x86_64
machine with Linux 3.15.0-rc5 as both dom0 and domU.
Any feedback about this new version of the patchset is more than welcome,

[1] http://lists.xen.org/archives/html/xen-devel/2014-03/msg01724.html
[2] http://markmail.org/message/7t6erxfy7pgorakb
[3] http://erika.tuxfamily.org/drupal/

Arianna Avanzini (12):
  arch/arm: add consistency check to REMOVE p2m changes
  arch/arm: unmap partially-mapped I/O-memory regions
  arch/x86: warn if to-be-removed mapping does not exist
  arch/x86: cleanup memory_mapping DOMCTL
  xen/common: add ARM stub for the function memory_type_changed()
  xen/x86: factor out map and unmap from the memory_mapping DOMCTL
  xen/common: move the memory_mapping DOMCTL hypercall to common code
  tools/libxl: parse optional start gfn from the iomem config option
  tools/libxl: handle the iomem parameter with the memory_mapping hcall
  tools/libxl: move PCI-related macros in a header file
  tools/libxl: explicitly grant access to needed I/O-memory ranges
  xen/common: do not implicitly permit access to mapped I/O memory

 docs/man/xl.cfg.pod.5        | 18 +++++++---
 tools/libxc/xc_domain.c      | 10 ++++++
 tools/libxl/libxl.h          | 10 ++++++
 tools/libxl/libxl_create.c   | 77 +++++++++++++++++++++++++++++++++++++++++
 tools/libxl/libxl_internal.h |  1 +
 tools/libxl/libxl_pci.c      | 33 ++++++------------
 tools/libxl/libxl_pci.h      | 10 ++++++
 tools/libxl/libxl_types.idl  |  4 +++
 tools/libxl/xl_cmdimpl.c     | 18 ++++++----
 xen/arch/arm/p2m.c           | 82 ++++++++++++++++++++++++++++++++------------
 xen/arch/x86/domctl.c        | 76 ----------------------------------------
 xen/arch/x86/mm/p2m.c        | 57 +++++++++++++++++++++++++++---
 xen/common/domctl.c          | 54 +++++++++++++++++++++++++++--
 xen/common/memory.c          |  2 +-
 xen/include/asm-arm/p2m.h    | 13 ++++---
 xen/include/asm-x86/p2m.h    |  3 +-
 xen/include/xen/p2m-common.h | 16 +++++++++
 17 files changed, 337 insertions(+), 147 deletions(-)
 create mode 100644 tools/libxl/libxl_pci.h
 create mode 100644 xen/include/xen/p2m-common.h


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.