All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: Julien Grall <julien.grall@citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	<xen-devel@lists.xensource.com>, <linux-kernel@vger.kernel.org>,
	<Ian.Campbell@citrix.com>, <linux-arm-kernel@lists.infradead.org>
Subject: Re: [Xen-devel] [PATCH v4 2/7] xen/arm: introduce HYPERVISOR_platform_op on arm and arm64
Date: Fri, 13 Nov 2015 18:10:22 +0000	[thread overview]
Message-ID: <alpine.DEB.2.02.1511131757360.2653@kaball.uk.xensource.com> (raw)
In-Reply-To: <5645E868.30706@citrix.com>

On Fri, 13 Nov 2015, Julien Grall wrote:
> Hi Stefano,
> 
> On 12/11/15 17:30, Stefano Stabellini wrote:
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > 
> > ---
> > 
> > Changes in v2:
> > - rename dom0_op to platform_op
> > ---
> >  arch/arm/include/asm/xen/hypercall.h |    2 ++
> >  arch/arm/xen/enlighten.c             |    1 +
> >  arch/arm/xen/hypercall.S             |    1 +
> >  arch/arm64/xen/hypercall.S           |    1 +
> >  4 files changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
> > index 712b50e..c3e00d0 100644
> > --- a/arch/arm/include/asm/xen/hypercall.h
> > +++ b/arch/arm/include/asm/xen/hypercall.h
> > @@ -35,6 +35,7 @@
> >  
> >  #include <xen/interface/xen.h>
> >  #include <xen/interface/sched.h>
> > +#include <xen/interface/platform.h>
> >  
> >  long privcmd_call(unsigned call, unsigned long a1,
> >  		unsigned long a2, unsigned long a3,
> > @@ -49,6 +50,7 @@ int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
> >  int HYPERVISOR_physdev_op(int cmd, void *arg);
> >  int HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args);
> >  int HYPERVISOR_tmem_op(void *arg);
> > +int HYPERVISOR_platform_op(void *arg);
> 
> int HYPERVISOR_platform_op(struct xen_platform_op *platform_op) to allow
> compiler type checking and match the x86 version.

Yeah, I am just following the same pattern as the others


> Also, the implementation of the helper differ from x86. On x86, the
> helper takes care of setting the interface_version while here you
> request the caller to do it.
> 
> It's better if we have similar requirement across the architecture as
> this helpers may be called from common code.

I agree with your point (I thought about it myself) but the current
assembly scheme for hypercalls doesn't work well with that. I would have
to introduce, and maintain going forward, two special hypercall
implementations in assembly, one for arm and another for arm64, just to
set interface_version. I don't think it is worth it; I prefer to have to
maintain the explicit interface_version setting at the call sites (that
today is just one).

WARNING: multiple messages have this Message-ID (diff)
From: stefano.stabellini@eu.citrix.com (Stefano Stabellini)
To: linux-arm-kernel@lists.infradead.org
Subject: [Xen-devel] [PATCH v4 2/7] xen/arm: introduce HYPERVISOR_platform_op on arm and arm64
Date: Fri, 13 Nov 2015 18:10:22 +0000	[thread overview]
Message-ID: <alpine.DEB.2.02.1511131757360.2653@kaball.uk.xensource.com> (raw)
In-Reply-To: <5645E868.30706@citrix.com>

On Fri, 13 Nov 2015, Julien Grall wrote:
> Hi Stefano,
> 
> On 12/11/15 17:30, Stefano Stabellini wrote:
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > 
> > ---
> > 
> > Changes in v2:
> > - rename dom0_op to platform_op
> > ---
> >  arch/arm/include/asm/xen/hypercall.h |    2 ++
> >  arch/arm/xen/enlighten.c             |    1 +
> >  arch/arm/xen/hypercall.S             |    1 +
> >  arch/arm64/xen/hypercall.S           |    1 +
> >  4 files changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
> > index 712b50e..c3e00d0 100644
> > --- a/arch/arm/include/asm/xen/hypercall.h
> > +++ b/arch/arm/include/asm/xen/hypercall.h
> > @@ -35,6 +35,7 @@
> >  
> >  #include <xen/interface/xen.h>
> >  #include <xen/interface/sched.h>
> > +#include <xen/interface/platform.h>
> >  
> >  long privcmd_call(unsigned call, unsigned long a1,
> >  		unsigned long a2, unsigned long a3,
> > @@ -49,6 +50,7 @@ int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
> >  int HYPERVISOR_physdev_op(int cmd, void *arg);
> >  int HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args);
> >  int HYPERVISOR_tmem_op(void *arg);
> > +int HYPERVISOR_platform_op(void *arg);
> 
> int HYPERVISOR_platform_op(struct xen_platform_op *platform_op) to allow
> compiler type checking and match the x86 version.

Yeah, I am just following the same pattern as the others


> Also, the implementation of the helper differ from x86. On x86, the
> helper takes care of setting the interface_version while here you
> request the caller to do it.
> 
> It's better if we have similar requirement across the architecture as
> this helpers may be called from common code.

I agree with your point (I thought about it myself) but the current
assembly scheme for hypercalls doesn't work well with that. I would have
to introduce, and maintain going forward, two special hypercall
implementations in assembly, one for arm and another for arm64, just to
set interface_version. I don't think it is worth it; I prefer to have to
maintain the explicit interface_version setting at the call sites (that
today is just one).

WARNING: multiple messages have this Message-ID (diff)
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: Julien Grall <julien.grall@citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
	Ian.Campbell@citrix.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [Xen-devel] [PATCH v4 2/7] xen/arm: introduce HYPERVISOR_platform_op on arm and arm64
Date: Fri, 13 Nov 2015 18:10:22 +0000	[thread overview]
Message-ID: <alpine.DEB.2.02.1511131757360.2653@kaball.uk.xensource.com> (raw)
In-Reply-To: <5645E868.30706@citrix.com>

On Fri, 13 Nov 2015, Julien Grall wrote:
> Hi Stefano,
> 
> On 12/11/15 17:30, Stefano Stabellini wrote:
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > 
> > ---
> > 
> > Changes in v2:
> > - rename dom0_op to platform_op
> > ---
> >  arch/arm/include/asm/xen/hypercall.h |    2 ++
> >  arch/arm/xen/enlighten.c             |    1 +
> >  arch/arm/xen/hypercall.S             |    1 +
> >  arch/arm64/xen/hypercall.S           |    1 +
> >  4 files changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
> > index 712b50e..c3e00d0 100644
> > --- a/arch/arm/include/asm/xen/hypercall.h
> > +++ b/arch/arm/include/asm/xen/hypercall.h
> > @@ -35,6 +35,7 @@
> >  
> >  #include <xen/interface/xen.h>
> >  #include <xen/interface/sched.h>
> > +#include <xen/interface/platform.h>
> >  
> >  long privcmd_call(unsigned call, unsigned long a1,
> >  		unsigned long a2, unsigned long a3,
> > @@ -49,6 +50,7 @@ int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
> >  int HYPERVISOR_physdev_op(int cmd, void *arg);
> >  int HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args);
> >  int HYPERVISOR_tmem_op(void *arg);
> > +int HYPERVISOR_platform_op(void *arg);
> 
> int HYPERVISOR_platform_op(struct xen_platform_op *platform_op) to allow
> compiler type checking and match the x86 version.

Yeah, I am just following the same pattern as the others


> Also, the implementation of the helper differ from x86. On x86, the
> helper takes care of setting the interface_version while here you
> request the caller to do it.
> 
> It's better if we have similar requirement across the architecture as
> this helpers may be called from common code.

I agree with your point (I thought about it myself) but the current
assembly scheme for hypercalls doesn't work well with that. I would have
to introduce, and maintain going forward, two special hypercall
implementations in assembly, one for arm and another for arm64, just to
set interface_version. I don't think it is worth it; I prefer to have to
maintain the explicit interface_version setting at the call sites (that
today is just one).

  reply	other threads:[~2015-11-13 18:10 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-12 17:29 [PATCH v4 0/7] Xen wallclock on arm and arm64 Stefano Stabellini
2015-11-12 17:29 ` Stefano Stabellini
2015-11-12 17:29 ` Stefano Stabellini
2015-11-12 17:30 ` [PATCH v4 1/7] xen: rename dom0_op to platform_op Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30 ` [PATCH v4 2/7] xen/arm: introduce HYPERVISOR_platform_op on arm and arm64 Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-13 13:40   ` [Xen-devel] " Julien Grall
2015-11-13 13:40     ` Julien Grall
2015-11-13 13:40     ` Julien Grall
2015-11-13 18:10     ` Stefano Stabellini [this message]
2015-11-13 18:10       ` Stefano Stabellini
2015-11-13 18:10       ` Stefano Stabellini
2015-11-13 18:31       ` Julien Grall
2015-11-13 18:31         ` Julien Grall
2015-11-13 18:31         ` Julien Grall
2015-11-16  9:42       ` Ian Campbell
2015-11-16  9:42         ` Ian Campbell
2015-11-16  9:42         ` Ian Campbell
2015-11-20 11:58         ` Stefano Stabellini
2015-11-20 11:58           ` Stefano Stabellini
2015-11-20 11:58           ` Stefano Stabellini
2015-11-20 12:18           ` Ian Campbell
2015-11-20 12:18             ` Ian Campbell
2015-11-20 12:18             ` Ian Campbell
2015-11-12 17:30 ` [PATCH v4 3/7] xen: introduce XENPF_settime64 Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30 ` [PATCH v4 4/7] arm: extend pvclock_wall_clock with sec_hi Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-13 13:43   ` [Xen-devel] " Julien Grall
2015-11-13 13:43     ` Julien Grall
2015-11-13 13:43     ` Julien Grall
2015-11-12 17:30 ` [PATCH v4 5/7] xen/arm: introduce xen_read_wallclock Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 19:12   ` Arnd Bergmann
2015-11-12 19:12     ` Arnd Bergmann
2015-11-12 17:30 ` [PATCH v4 6/7] xen/arm: set the system time in Xen via the XENPF_settime64 hypercall Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-13 13:56   ` [Xen-devel] " Julien Grall
2015-11-13 13:56     ` Julien Grall
2015-11-13 13:56     ` Julien Grall
2015-11-12 17:30 ` [PATCH v4 7/7] xen/x86: support XENPF_settime64 Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 17:30   ` Stefano Stabellini
2015-11-12 19:14   ` Arnd Bergmann
2015-11-12 19:14     ` Arnd Bergmann
2015-11-13 10:42   ` [Xen-devel] " David Vrabel
2015-11-13 10:42     ` David Vrabel
2015-11-13 10:42     ` David Vrabel
2015-11-13 10:45     ` Stefano Stabellini
2015-11-13 10:45       ` Stefano Stabellini
2015-11-13 10: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=alpine.DEB.2.02.1511131757360.2653@kaball.uk.xensource.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=julien.grall@citrix.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --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.