xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>,
	Shannon Zhao <zhaoshenglong@huawei.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: hangaohuai@huawei.com, stefano.stabellini@citrix.com,
	shannon.zhao@linaro.org, xen-devel@lists.xen.org
Subject: Re: [PATCH v5 21/22] xen/arm: Add a hypercall for device mmio mapping
Date: Fri, 04 Mar 2016 03:29:26 -0700	[thread overview]
Message-ID: <56D9719602000078000D94A2@prv-mh.provo.novell.com> (raw)
In-Reply-To: <1457072152-16128-22-git-send-email-zhaoshenglong@huawei.com>

>>> On 04.03.16 at 07:15, <zhaoshenglong@huawei.com> wrote:
> From: Shannon Zhao <shannon.zhao@linaro.org>
> 
> It needs to map platform or amba device mmio to Dom0 on ARM. But when
> booting with ACPI, it can't get the mmio region in Xen due to lack of
> AML interpreter to parse DSDT table. Therefore, let Dom0 call a
> hypercall to map mmio region when it adds the devices.
> 
> Here we add a new map space like the XEN_DOMCTL_memory_mapping to map
> mmio region for Dom0.
> 
> Cc: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>

Same remark regarding the Cc list.

> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -1138,6 +1138,9 @@ int xenmem_add_to_physmap_one(
>          rcu_unlock_domain(od);
>          break;
>      }
> +    case XENMAPSPACE_dev_mmio:
> +        rc = map_dev_mmio_region(d, gpfn, 1, idx);

This being the only caller, ...

> +int map_dev_mmio_region(struct domain *d,
> +                        unsigned long start_gfn,
> +                        unsigned long nr,
> +                        unsigned long mfn)
> +{

... what's the "nr" parameter good for? Or alternatively - wouldn't
you want to make it possible to have larger areas mapped by large
pages?

> +    int res;
> +
> +    if(!iomem_access_permitted(d, start_gfn, start_gfn + nr))
> +        return 0;

This would seem to belong into common code

Also - coding style.

> +    res = map_mmio_regions(d, start_gfn, nr, mfn);
> +    if ( res < 0 )
> +    {
> +        printk(XENLOG_ERR "Unable to map 0x%lx - 0x%lx in domain %d\n",

%#lx

> +               start_gfn << PAGE_SHIFT, (start_gfn + nr) << PAGE_SHIFT,

I see no reason for the shifts.

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -980,6 +980,14 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( d == NULL )
>              return -ESRCH;
>  
> +        /*
> +         * XENMAPSPACE_dev_mmio mapping is only supported for hardware Domain
> +         * to map this kind of space to itself.
> +         */
> +        if ( (xatp.space == XENMAPSPACE_dev_mmio) &&
> +             (!is_hardware_domain(current->domain) || (d != current->domain)) )

Readability would benefit if you used "d" twice and "current->domain"
just once, preferable after swapping the two sides of the ||.

Overall I wonder whether this wouldn't help PVH on x86 too,
where we currently do some hackery to (not even completely)
map MMIO into Dom0's p2m. In such a case perhaps
map_dev_mmio_regions() should become a general per-arch
function right away (declared in a common header and stubbed
out in x86 code for now). Boris, Roger?

Jan


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

  reply	other threads:[~2016-03-04 10:29 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04  6:15 [PATCH v5 00/22] Prepare UEFI and ACPI tables for Dom0 on ARM64 Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 01/22] arm/acpi: Estimate memory required for acpi/efi tables Shannon Zhao
2016-03-04 10:09   ` Jan Beulich
2016-03-04 10:55     ` Stefano Stabellini
2016-03-04 15:03       ` Shannon Zhao
2016-03-04 15:23         ` Stefano Stabellini
2016-03-04 15:52           ` Shannon Zhao
2016-03-04 15:59             ` Stefano Stabellini
2016-03-04 15:39         ` Jan Beulich
2016-03-04  6:15 ` [PATCH v5 02/22] arm/acpi: Add a helper function to get the acpi table offset Shannon Zhao
2016-03-04 10:59   ` Stefano Stabellini
2016-03-04 15:12     ` Shannon Zhao
2016-03-04 15:31       ` Stefano Stabellini
2016-03-04 15:53         ` Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 03/22] arm/acpi: Prepare FADT table for Dom0 Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 04/22] arm/gic: Add a new callback for creating MADT " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 05/22] arm/acpi: Prepare " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 06/22] arm/acpi: Prepare STAO " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 07/22] arm/acpi: Prepare XSDT " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 08/22] arm/acpi: Prepare RSDP " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 09/22] arm/p2m: Add helper functions to map memory regions Shannon Zhao
2016-03-04 10:51   ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 10/22] arm/acpi: Map all other tables for Dom0 Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 11/22] arm/acpi: Prepare EFI system table " Shannon Zhao
2016-03-04 11:02   ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 12/22] arm/acpi: Prepare EFI memory descriptor " Shannon Zhao
2016-03-04 11:13   ` Stefano Stabellini
2016-03-16  8:59     ` Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 13/22] arm/acpi: Map the new created EFI and ACPI tables to Dom0 Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 14/22] arm/acpi: Create min DT stub for Dom0 Shannon Zhao
2016-03-04 11:17   ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 15/22] arm/acpi: Permit access all Xen unused SPIs " Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 16/22] arm/acpi: Configure SPI interrupt type and route to Dom0 dynamically Shannon Zhao
2016-03-04 11:26   ` Stefano Stabellini
2016-03-04 15:16     ` Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 17/22] arm/gic: Add a new callback to deny Dom0 access to GIC regions Shannon Zhao
2016-03-04 11:59   ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 18/22] arm/acpi: Permit MMIO access of Xen unused devices for Dom0 Shannon Zhao
2016-03-04 12:01   ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 19/22] hvm/params: Add a new delivery type for event-channel in HVM_PARAM_CALLBACK_IRQ Shannon Zhao
2016-03-04 10:16   ` Jan Beulich
2016-03-04 12:09     ` Stefano Stabellini
2016-03-04 12:20       ` Jan Beulich
2016-03-04 12:26         ` Stefano Stabellini
2016-03-16 15:03     ` Julien Grall
2016-03-16 15:10       ` Jan Beulich
2016-03-04 21:19   ` Konrad Rzeszutek Wilk
2016-03-16 16:34     ` Julien Grall
2016-03-16 17:49       ` Konrad Rzeszutek Wilk
2016-03-24 12:24         ` Stefano Stabellini
2016-03-04  6:15 ` [PATCH v5 20/22] xen/acpi: Fix event-channel interrupt when booting with ACPI Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 21/22] xen/arm: Add a hypercall for device mmio mapping Shannon Zhao
2016-03-04 10:29   ` Jan Beulich [this message]
2016-03-04 11:00     ` Roger Pau Monné
2016-03-04 11:11       ` Jan Beulich
2016-03-04 11:37         ` Stefano Stabellini
2016-03-16  9:48     ` Shannon Zhao
2016-03-16 10:04       ` Jan Beulich
2016-03-16 11:22         ` Shannon Zhao
2016-03-04  6:15 ` [PATCH v5 22/22] xen/arm64: Add ACPI support Shannon Zhao
2016-03-04 10:33   ` Jan Beulich
2016-03-04 11:45     ` Stefano Stabellini
2016-03-04 11:45   ` Stefano Stabellini

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=56D9719602000078000D94A2@prv-mh.provo.novell.com \
    --to=jbeulich@suse.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=hangaohuai@huawei.com \
    --cc=roger.pau@citrix.com \
    --cc=shannon.zhao@linaro.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.com \
    /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).