kexec.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Geoff Levand <geoff@infradead.org>
To: Christopher Covington <cov@codeaurora.org>
Cc: marc.zyngier@arm.com, Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	Grant Likely <grant.likely@linaro.org>,
	kexec@lists.infradead.org,
	Christoffer Dall <christoffer.dall@linaro.org>
Subject: Re: [PATCH v2 2/8] arm64: Convert hcalls to use ISS field
Date: Tue, 03 Mar 2015 14:35:51 -0800	[thread overview]
Message-ID: <1425422151.9265.13.camel@infradead.org> (raw)
In-Reply-To: <54F62BF4.1070306@codeaurora.org>

Hi Christopher,

On Tue, 2015-03-03 at 16:47 -0500, Christopher Covington wrote:
> On 03/02/2015 06:22 PM, Geoff Levand wrote:
> > Yes, in general it will make marshaling of args, etc. easier.  Also,
> > to me, if we are going to change the implementation it seems to be
> > the most natural way.
> 
> From reading the architecture documentation, I too expected the hypervisor
> call instruction's immediate and the instruction specific syndrome to be used.
> However I vaguely recall someone pointing out that reading the exception
> syndrome register and extracting the instruction specific syndrome is bound to
> take longer than simply using a general purpose register.
> 
> One might also consider alignment with the SMC Calling Convention document
> [1], which while originally written for SMC, is also used for HVC by PSCI [2].
> 
> 1. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0028a/index.html
> 2. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0022c/index.html

On looking at the SMC document, I found this:
 
  The SMC instruction encodes an immediate value as defined by the ARM
  architecture [1][2]. The size of this and mechanism to access the
  immediate value differ between the ARM instruction sets. Additionally,
  it is time consuming for 32-bit Secure Monitor code to access this
  immediate value. Consequently:

   o An SMC immediate value of Zero must be used.
   o All other SMC immediate values are reserved. 

The first problem of differing access methods does not exist for our
case, the kernel will always use the same method.

As for the second problem, the current implementation already reads
esr_el2.  The new code just adds an AND instruction to mask the ISS
field.  I don't think this would be more overhead than shifting
registers.

One alternative would be to use a high register, say x7, and limit the
hcalls to args x0-x6, but I don't think this gains much over using the
immediate.

-Geoff


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2015-03-03 22:35 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1415926876.git.geoff@infradead.orgg>
2015-01-17  0:23 ` [PATCH 0/8] arm64 kexec kernel patches V7 Geoff Levand
2015-01-17  0:23   ` [PATCH 7/8] arm64/kexec: Add checks for KVM Geoff Levand
2015-01-26 19:19     ` Mark Rutland
2015-01-26 20:39       ` Christoffer Dall
2015-01-26 20:58         ` Geoff Levand
2015-01-26 21:00       ` Geoff Levand
2015-01-29  9:36       ` AKASHI Takahiro
2015-01-29  9:57       ` AKASHI Takahiro
2015-01-29 10:59         ` Marc Zyngier
2015-01-29 18:47           ` Mark Rutland
2015-01-30  6:10             ` AKASHI Takahiro
2015-01-30 12:14               ` Mark Rutland
2015-01-30 19:48               ` Geoff Levand
2015-02-02  8:18                 ` AKASHI Takahiro
2015-02-06  0:11                   ` Geoff Levand
2015-02-06  4:18                     ` AKASHI Takahiro
2015-02-06  7:06                       ` Geoff Levand
2015-01-17  0:23   ` [PATCH 3/8] arm64: Add new hcall HVC_CALL_FUNC Geoff Levand
2015-01-27 17:39     ` Catalin Marinas
2015-01-27 18:00       ` Mark Rutland
2015-01-30 21:52       ` Geoff Levand
2015-01-17  0:23   ` [PATCH 6/8] arm64/kexec: Add pr_devel output Geoff Levand
2015-01-17  0:23   ` [PATCH 1/8] arm64: Move proc-macros.S to include/asm Geoff Levand
2015-01-26 17:45     ` Catalin Marinas
2015-01-27 19:33     ` [PATCH V2 1/8] arm64: Fold proc-macros.S into assembler.h Geoff Levand
2015-01-17  0:23   ` [PATCH 2/8] arm64: Convert hcalls to use ISS field Geoff Levand
2015-01-26 18:26     ` Catalin Marinas
2015-01-30 23:31       ` Geoff Levand
2015-02-02 16:04         ` Catalin Marinas
2015-01-30 23:33     ` [PATCH v2 " Geoff Levand
2015-02-19 20:57       ` Christoffer Dall
2015-02-25 22:09         ` Geoff Levand
2015-03-02 22:13           ` Christoffer Dall
2015-03-02 23:22             ` Geoff Levand
2015-03-03 21:47               ` Christopher Covington
2015-03-03 22:35                 ` Geoff Levand [this message]
2015-01-17  0:23   ` [PATCH 8/8] arm64/kexec: Enable kexec in the arm64 defconfig Geoff Levand
2015-01-17  0:23   ` [PATCH 5/8] arm64/kexec: Add core kexec support Geoff Levand
2015-01-26 19:16     ` Mark Rutland
2015-01-17  0:23   ` [PATCH 4/8] arm64: Add EL2 switch to soft_restart Geoff Levand
2015-01-26 19:02     ` Mark Rutland
2015-01-26 21:48       ` Geoff Levand
2015-01-27 16:46         ` Mark Rutland
2015-01-27 18:34           ` Geoff Levand
2015-01-27 17:57     ` Catalin Marinas
2015-01-30 21:47       ` Geoff Levand
2015-01-26 17:44   ` [PATCH 0/8] arm64 kexec kernel patches V7 Catalin Marinas
2015-01-26 18:37     ` Grant Likely
2015-01-26 18:55     ` Mark Rutland
2015-01-26 20:57     ` Geoff Levand

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=1425422151.9265.13.camel@infradead.org \
    --to=geoff@infradead.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=cov@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=will.deacon@arm.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).