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

Re: [Xen-devel] [PATCH v11 00/14] Implement the XEN_DOMCTL_memory_mapping hypercall for ARM



Whole patch series is additionally verified on the following setup:

Platform - Jacinto6 (OMAP5) with two ARMv7 cores (Cortex A15), 1.5 Gb of RAM
Hypervisor - Xen 4.5 unstable (latest master branch)
Dom0 - Linux 3.8 running with 2 vcpus, 128 Mb RAM
DomU - Android 4.3

the following memory regions were successfully mapped to domU:

libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48034-48037
(XEN) memory_map:add: dom1 gfn=48034 mfn=48034 nr=4
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48243-48243
(XEN) memory_map:add: dom1 gfn=48243 mfn=48243 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48281-48281
(XEN) memory_map:add: dom1 gfn=48281 mfn=48281 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48842-48845
(XEN) memory_map:add: dom1 gfn=48842 mfn=48842 nr=4
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4a002-4a002
(XEN) memory_map:add: dom1 gfn=4a002 mfn=4a002 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4a005-4a005
(XEN) memory_map:add: dom1 gfn=4a005 mfn=4a005 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4a008-4a009
(XEN) memory_map:add: dom1 gfn=4a008 mfn=4a008 nr=2
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4ae06-4ae07
(XEN) memory_map:add: dom1 gfn=4ae06 mfn=4ae06 nr=2
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4ae0c-4ae0c
(XEN) memory_map:add: dom1 gfn=4ae0c mfn=4ae0c nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 55080-55080
(XEN) memory_map:add: dom1 gfn=55080 mfn=55080 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 55083-55083
(XEN) memory_map:add: dom1 gfn=55083 mfn=55083 nr=1
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 56001-5600f
(XEN) memory_map:add: dom1 gfn=56001 mfn=56001 nr=f
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 95900-95eff
(XEN) memory_map:add: dom1 gfn=95900 mfn=95900 nr=600
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 95f00-989ff
(XEN) memory_map:add: dom1 gfn=95f00 mfn=95f00 nr=2b00
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 98a00-98aff
(XEN) memory_map:add: dom1 gfn=98a00 mfn=98a00 nr=100
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 95800-958ff
(XEN) memory_map:add: dom1 gfn=95800 mfn=95800 nr=100
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem ba300-bfcff
(XEN) memory_map:add: dom1 gfn=ba300 mfn=ba300 nr=5a00
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 60000-6ffff
(XEN) memory_map:add: dom1 gfn=60000 mfn=60000 nr=10000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 70000-77fff
(XEN) memory_map:add: dom1 gfn=70000 mfn=70000 nr=8000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 78000-7ffff
(XEN) memory_map:add: dom1 gfn=78000 mfn=78000 nr=8000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4a000-4afff
(XEN) memory_map:add: dom1 gfn=4a000 mfn=4a000 nr=1000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48000-481ff
(XEN) memory_map:add: dom1 gfn=48000 mfn=48000 nr=200
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48400-487ff
(XEN) memory_map:add: dom1 gfn=48400 mfn=48400 nr=400
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 48800-48fff
(XEN) memory_map:add: dom1 gfn=48800 mfn=48800 nr=800
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 54000-54fff
(XEN) memory_map:add: dom1 gfn=54000 mfn=54000 nr=1000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 5a000-5afff
(XEN) memory_map:add: dom1 gfn=5a000 mfn=5a000 nr=1000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 5b000-5bfff
(XEN) memory_map:add: dom1 gfn=5b000 mfn=5b000 nr=1000
libxl: debug: libxl_create.c:1171:domcreate_launch_dm: dom1 iomem 4e000-4e0ff
(XEN) memory_map:add: dom1 gfn=4e000 mfn=4e000 nr=100

Regards,
Andrii

On Sun, Aug 24, 2014 at 11:29 PM, Arianna Avanzini
<avanzini.arianna@xxxxxxxxx> wrote:
> Hello,
>
> here is the eleventh version of my implementation proposal for the DOMCTL
> memory_mapping for the ARM architecture. As usual, I'll try to keep this
> as short as I can by just going through the most relevant changes. A more
> detailed changelog is 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.
>
> Patch 0001 has been fixed according to suggestions given by Julien Grall and
> approved by Ian Campbell. Now it handles even level 3 mappings. Also, as
> suggested by Andrew Cooper, the printk uses a XENLOG_G_WARNING loglevel so
> that it can be rate-limited appropriately.
>
> Patch 0002 has also been changed according to directives provided by Julien
> Grall. Now partially-mapped memory regions are unmapped regardless of their
> being I/O-memory or not.
>
> Patch 0008 has been fixed according to directive from Julien Grall.
>
> Patch 0010 has been added to allow FLASK to handle the memory_mapping case
> also on ARM architecture, therefore preventing wrong error messages from
> being printed, as indicated by Julien Grall.
>
> A new patch 0011, contributed by Andrii Tseglytskyi, has been merged into
> the series. It adds a FLASK policy rule to allow a domU to access previously-
> mapped I/O-memory regions.
>
> Patch 0012 has been modified according to suggestions provided by Ian 
> Campbell.
> The VGA-related bits have been moved to a libxl_pci helper. Non-functional
> changes have been split into patch 0013 to facilitate review. A leftover debug
> print has been removed.
>
> As usual, 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,
> Arianna
>
> [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/
>
> 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                           |  44 +++++-
>  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, 385 insertions(+), 186 deletions(-)
>  create mode 100644 xen/include/xen/p2m-common.h
>
> --
> 2.1.0
>



-- 

Andrii Tseglytskyi | Embedded Dev
GlobalLogic
www.globallogic.com

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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