From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arianna Avanzini Subject: [PATCH v12 00/14] Implement the XEN_DOMCTL_memory_mapping hypercall for ARM Date: Sat, 30 Aug 2014 18:29:35 +0200 Message-ID: <1409416189-16564-1-git-send-email-avanzini.arianna@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Ian.Campbell@eu.citrix.com, paolo.valente@unimore.it, keir@xen.org, stefano.stabellini@eu.citrix.com, Ian.Jackson@eu.citrix.com, dario.faggioli@citrix.com, tim@xen.org, julien.grall@citrix.com, etrudeau@broadcom.com, andrew.cooper3@citrix.com, JBeulich@suse.com, avanzini.arianna@gmail.com, viktor.kleinik@globallogic.com, andrii.tseglytskyi@globallogic.com List-Id: xen-devel@lists.xenproject.org Hello, here's a twelfth version of my implementation proposal for the memory_mapping DOMCTL for the ARM architecture. The changes implemented for this version with respect to the previous one are small. A detailed changelog can be found in the description of each of the commits, while an extensive summary of the patch series' genesis can be found in the last full cover letter ([1]). Please note that this patchset includes a contribution from Andrii Tseglytskyi, as you may also see from the shortlog below. The main change introduced with this patchset is in patch 0002. The code that unmaps partially-mapped memory regions now, as Julien Grall suggested, handles also the case where the unmapping, if performed on the whole range passed to the apply_p2m_changes() function, would destroy also existing mappings. Now the recursive invocation of apply_p2m_changes() now affects only the area actually affected by the insertion attempt. Patch 0002 has also been fixed according to directives by Julien Grall. As usual, the code has been tested on a cubieboard2, with Linux v3.15 as a dom0 dom0 and both ERIKA Enterprise ([2]) and Linux v3.15 as a domU. The x86 bits have been tested on an x86_64 machine with Linux v3.15 as both dom0 and domU. The v11 of this patchset has been also tested by Andrii Tseglytskyi ([3]). Any feedback about this new version of the patchset is more than welcome, Arianna [1] http://lists.xen.org/archives/html/xen-devel/2014-03/msg01724.html [2] http://erika.tuxfamily.org/drupal/ [3] http://markmail.org/message/yyr6lalwifudtfad Andrii Tseglytskyi (1): flask/policy: allow domU to use previously-mapped I/O-memory Arianna Avanzini (13): arch/arm: add consistency check to REMOVE p2m changes arch/arm: unmap partially-mapped 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 xsm/flask: avoid spurious error messages when mapping I/O-memory tools/libxl: explicitly grant access to needed I/O-memory ranges tools/libxl: cleanup the do_pci_add() function xen/common: do not implicitly permit access to mapped I/O memory docs/man/xl.cfg.pod.5 | 18 ++- tools/flask/policy/policy/modules/xen/xen.te | 1 + tools/libxc/xc_domain.c | 10 ++ tools/libxl/libxl.h | 10 ++ tools/libxl/libxl_create.c | 28 +++- tools/libxl/libxl_internal.h | 3 + tools/libxl/libxl_pci.c | 213 +++++++++++++++++---------- tools/libxl/libxl_types.idl | 4 + tools/libxl/xl_cmdimpl.c | 17 ++- xen/arch/arm/p2m.c | 79 ++++++++-- 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 ++ xen/xsm/flask/hooks.c | 2 +- 18 files changed, 410 insertions(+), 196 deletions(-) create mode 100644 xen/include/xen/p2m-common.h -- 2.1.0