All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel@lists.xensource.com, Tim Deegan <Tim.Deegan@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>
Subject: Re: [PATCH 0/5] ARM hypercall ABI: 64 bit ready
Date: Mon, 6 Aug 2012 15:39:34 +0100	[thread overview]
Message-ID: <501FD726.90806@citrix.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1208061447130.4645@kaball.uk.xensource.com>

On 06/08/12 15:11, Stefano Stabellini wrote:
> Hi all,
> this patch series makes the necessary changes to make sure that the
> current ARM hypercall ABI can be used as-is on 64 bit ARM platforms:
> 
> - it defines xen_ulong_t as uint64_t on ARM;
> - it introduces a new macro to handle guest pointers, called
> XEN_GUEST_HANDLE_PARAM (that has size 4 bytes on aarch and is going to
> have size 8 bytes on aarch64);
> - it replaces all the occurrences of XEN_GUEST_HANDLE in hypercall
> parameters with XEN_GUEST_HANDLE_PARAM.

This is a subtle (and undocumented!) distinction. I can see people
adding/modifying hypercall etc. getting this wrong and no one noticing
for a while (since it doesn't affect x86).

The xen_ulong_t parameters (when used for pointers) from an aarch guest
point of view are a uint32_t guest pointer and uint32_t of padding.  So
the guest handles will be the same size in hypercall parameters and
structure members.

David

> On x86 and ia64 things should stay exactly the same.
> 
> On ARM all the unsigned long and the guest pointers that are members of
> a struct become size 8 byte (both aarch and aarch64).
> However guest pointers that are passed as hypercall arguments in
> registers are going to be 4 bytes on aarch and 8 bytes on aarch64.
> 
> It is based on Ian's arm-for-4.3 branch. 
> 
> 
> Stefano Stabellini (5):
>       xen: improve changes to xen_add_to_physmap
>       xen/arm: introduce __lshrdi3 and __aeabi_llsr
>       xen: few more xen_ulong_t substitutions
>       xen: introduce XEN_GUEST_HANDLE_PARAM
>       xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate
> 
> 
>  xen/arch/arm/domain.c              |    2 +-
>  xen/arch/arm/domctl.c              |    2 +-
>  xen/arch/arm/hvm.c                 |    2 +-
>  xen/arch/arm/lib/Makefile          |    2 +-
>  xen/arch/arm/lib/lshrdi3.S         |   54 ++++++++++++++++++++++++++++++++++++
>  xen/arch/arm/mm.c                  |    2 +-
>  xen/arch/arm/physdev.c             |    2 +-
>  xen/arch/arm/sysctl.c              |    2 +-
>  xen/arch/x86/cpu/mcheck/mce.c      |    2 +-
>  xen/arch/x86/domain.c              |    2 +-
>  xen/arch/x86/domctl.c              |    2 +-
>  xen/arch/x86/efi/runtime.c         |    2 +-
>  xen/arch/x86/hvm/hvm.c             |   26 ++++++++--------
>  xen/arch/x86/microcode.c           |    2 +-
>  xen/arch/x86/mm.c                  |   14 ++++----
>  xen/arch/x86/mm/hap/hap.c          |    2 +-
>  xen/arch/x86/mm/mem_event.c        |    2 +-
>  xen/arch/x86/mm/paging.c           |    2 +-
>  xen/arch/x86/mm/shadow/common.c    |    2 +-
>  xen/arch/x86/physdev.c             |    2 +-
>  xen/arch/x86/platform_hypercall.c  |    2 +-
>  xen/arch/x86/sysctl.c              |    2 +-
>  xen/arch/x86/traps.c               |    2 +-
>  xen/arch/x86/x86_32/mm.c           |    2 +-
>  xen/arch/x86/x86_32/traps.c        |    2 +-
>  xen/arch/x86/x86_64/compat/mm.c    |    8 ++--
>  xen/arch/x86/x86_64/domain.c       |    2 +-
>  xen/arch/x86/x86_64/mm.c           |    2 +-
>  xen/arch/x86/x86_64/traps.c        |    2 +-
>  xen/common/compat/domain.c         |    2 +-
>  xen/common/compat/grant_table.c    |    2 +-
>  xen/common/compat/memory.c         |    2 +-
>  xen/common/domain.c                |    2 +-
>  xen/common/domctl.c                |    2 +-
>  xen/common/event_channel.c         |    2 +-
>  xen/common/grant_table.c           |   36 ++++++++++++------------
>  xen/common/kernel.c                |    4 +-
>  xen/common/kexec.c                 |   16 +++++-----
>  xen/common/memory.c                |    4 +-
>  xen/common/multicall.c             |    2 +-
>  xen/common/schedule.c              |    2 +-
>  xen/common/sysctl.c                |    2 +-
>  xen/common/xenoprof.c              |    8 ++--
>  xen/drivers/acpi/pmstat.c          |    2 +-
>  xen/drivers/char/console.c         |    6 ++--
>  xen/drivers/passthrough/iommu.c    |    2 +-
>  xen/include/asm-arm/guest_access.h |    2 +-
>  xen/include/asm-arm/hypercall.h    |    2 +-
>  xen/include/asm-arm/mm.h           |    2 +-
>  xen/include/asm-x86/hap.h          |    2 +-
>  xen/include/asm-x86/hypercall.h    |   24 ++++++++--------
>  xen/include/asm-x86/mem_event.h    |    2 +-
>  xen/include/asm-x86/mm.h           |    8 ++--
>  xen/include/asm-x86/paging.h       |    2 +-
>  xen/include/asm-x86/processor.h    |    2 +-
>  xen/include/asm-x86/shadow.h       |    2 +-
>  xen/include/asm-x86/xenoprof.h     |    6 ++--
>  xen/include/public/arch-arm.h      |   21 ++++++++++----
>  xen/include/public/arch-ia64.h     |    1 +
>  xen/include/public/arch-x86/xen.h  |    1 +
>  xen/include/public/memory.h        |   11 ++++--
>  xen/include/public/physdev.h       |    2 +-
>  xen/include/public/version.h       |    2 +-
>  xen/include/public/xen.h           |    4 +-
>  xen/include/xen/acpi.h             |    4 +-
>  xen/include/xen/hypercall.h        |   52 +++++++++++++++++-----------------
>  xen/include/xen/iommu.h            |    2 +-
>  xen/include/xen/tmem_xen.h         |    2 +-
>  xen/include/xsm/xsm.h              |    4 +-
>  xen/xsm/dummy.c                    |    2 +-
>  xen/xsm/flask/flask_op.c           |    4 +-
>  xen/xsm/flask/hooks.c              |    2 +-
>  xen/xsm/xsm_core.c                 |    2 +-
>  73 files changed, 243 insertions(+), 175 deletions(-)
> 
> 
> Cheers,
> 
> Stefano
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

  parent reply	other threads:[~2012-08-06 14:39 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06 14:11 [PATCH 0/5] ARM hypercall ABI: 64 bit ready Stefano Stabellini
2012-08-06 14:12 ` [PATCH 1/5] xen: improve changes to xen_add_to_physmap Stefano Stabellini
2012-08-06 14:24   ` Konrad Rzeszutek Wilk
2012-08-06 14:38     ` Stefano Stabellini
2012-08-06 15:32   ` Jan Beulich
2012-08-06 15:43     ` Stefano Stabellini
2012-08-06 15:54       ` Jan Beulich
2012-08-07 12:27         ` Stefano Stabellini
2012-08-07 12:40           ` Jean Guyader
2012-08-07 13:18             ` Jan Beulich
2012-08-07 17:07               ` Stefano Stabellini
2012-08-08  7:14                 ` Jan Beulich
2012-08-08  7:45                   ` Ian Campbell
2012-08-08  8:49                     ` Jan Beulich
2012-08-08  9:51                       ` Stefano Stabellini
2012-08-08 10:03                         ` Jean Guyader
2012-08-08 10:08                           ` Stefano Stabellini
2012-08-08 14:20                           ` David Vrabel
2012-08-08 19:33                             ` Jean Guyader
2012-08-07 13:02           ` Jan Beulich
2012-08-07 15:24             ` Ian Jackson
2012-08-07 15:37               ` Jan Beulich
2012-08-11  1:33   ` Mukesh Rathor
2012-08-13 10:43     ` Stefano Stabellini
2012-08-06 14:12 ` [PATCH 2/5] xen/arm: introduce __lshrdi3 and __aeabi_llsr Stefano Stabellini
2012-08-09  9:16   ` Ian Campbell
2012-08-09  9:43     ` Stefano Stabellini
2012-08-06 14:12 ` [PATCH 3/5] xen: few more xen_ulong_t substitutions Stefano Stabellini
2012-08-06 15:38   ` Jan Beulich
2012-08-07 12:08     ` Stefano Stabellini
2012-08-07 12:36       ` Ian Campbell
2012-08-07 13:13         ` Jan Beulich
2012-08-07 13:30           ` Ian Campbell
2012-08-07 12:54       ` Jan Beulich
2012-08-08  7:59         ` Ian Campbell
2012-08-08 12:12         ` Stefano Stabellini
2012-08-08 12:17           ` Ian Campbell
2012-08-08 14:07           ` Jan Beulich
2012-08-08 15:01             ` Stefano Stabellini
2012-08-08 15:12               ` Jan Beulich
2012-08-08 15:55                 ` Stefano Stabellini
2012-08-06 14:12 ` [PATCH 4/5] xen: introduce XEN_GUEST_HANDLE_PARAM Stefano Stabellini
2012-08-06 15:43   ` Jan Beulich
2012-08-06 15:47     ` Ian Campbell
2012-08-06 15:58       ` Jan Beulich
2012-08-06 16:02         ` Stefano Stabellini
2012-08-07  6:24           ` Jan Beulich
2012-08-07 12:35             ` Stefano Stabellini
2012-08-07 12:39               ` Ian Campbell
2012-08-07 13:08               ` Jan Beulich
2012-08-07 18:09                 ` Stefano Stabellini
2012-08-08  7:48                 ` Ian Campbell
2012-08-08  8:54                   ` Jan Beulich
2012-08-06 14:12 ` [PATCH 5/5] xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate Stefano Stabellini
2012-08-06 14:39 ` David Vrabel [this message]
2012-08-06 14:44   ` [PATCH 0/5] ARM hypercall ABI: 64 bit ready Stefano Stabellini
2012-08-06 14:49     ` Stefano Stabellini
2012-08-06 14:59     ` David Vrabel

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=501FD726.90806@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Tim.Deegan@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.