public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: "Zhao, Yakui" <yakui.zhao@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"Chen, Jason CJ" <jason.cj.chen@intel.com>
Subject: Re: [RFC PATCH v5 4/4] x86/acrn: Add hypercall for ACRN guest
Date: Thu, 25 Apr 2019 13:00:25 +0200	[thread overview]
Message-ID: <20190425110025.GA16164@zn.tnic> (raw)
In-Reply-To: <6dd021a9-e2c0-ee84-55fd-3e6dfb4bd944@intel.com>

On Thu, Apr 25, 2019 at 06:16:02PM +0800, Zhao, Yakui wrote:
> The parameter register for the VMCALL is predefined in ACRN hypervisor. Now
> the R8 is used to pass the hcall_id.
> It seems that there is no special constraint for R8~R15.
> So the explicit register variable is used so that the R8 can be passed.

If you're going to use the constraint "D" for param1, you can just as
well do

	"=a" (result)

everywhere since you have the letter constraint for %rax instead of
declaring it with "register".

Also, you can completely get rid of those "register" declarations
and let gcc have all the freedom to pass in hcall_id and the other
parameters:

	unsigned long result;

        asm volatile("mov %[hcall_id], %%r8\n\t"
                     "vmcall\n\t"
                     : "=a" (result)
                     : [hcall_id] "g" (hcall_id)
                     : "r8");

        return result;

and %r8 will be in the clobber list so gcc will reload it if needed.

gcc turns it into

0000000000001040 <main>:
    1040:       4c 8b 05 e1 2f 00 00    mov    0x2fe1(%rip),%r8        # 4028 <hcall_id>
    1047:       0f 01 c1                vmcall
    104a:       c3                      retq 
    104b:       0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)

here.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

  reply	other threads:[~2019-04-25 11:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  0:54 [RFC PATCH v5 0/4] x86: Add the support of ACRN guest under x86 Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 1/4] x86/Kconfig: Add new config symbol to unify conditional definition of hv_irq_callback_count Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 2/4] x86: Add the support of Linux guest on ACRN hypervisor Zhao Yakui
2019-04-24  0:54 ` [RFC PATCH v5 3/4] x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector Zhao Yakui
2019-04-25  7:17   ` Ingo Molnar
2019-04-25 12:42     ` Zhao, Yakui
2019-04-25 19:45       ` Ingo Molnar
2019-04-26  1:46         ` Zhao, Yakui
2019-04-26  5:57           ` Ingo Molnar
2019-04-24  0:54 ` [RFC PATCH v5 4/4] x86/acrn: Add hypercall for ACRN guest Zhao Yakui
2019-04-25  7:07   ` Ingo Molnar
2019-04-25 10:16     ` Zhao, Yakui
2019-04-25 11:00       ` Borislav Petkov [this message]
2019-04-26  3:18         ` Zhao, Yakui
2019-04-27  8:58           ` Borislav Petkov
2019-04-28  1:56             ` Zhao, Yakui
2019-04-28 10:03               ` Borislav Petkov
2019-04-29  1:24                 ` Zhao, Yakui
2019-04-29  7:36                   ` Borislav Petkov
2019-04-29  9:52                     ` Zhao, Yakui
2019-04-24 22:20 ` [RFC PATCH v5 0/4] x86: Add the support of ACRN guest under x86 Thomas Gleixner
2019-04-25  5:44   ` Zhao, Yakui

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=20190425110025.GA16164@zn.tnic \
    --to=bp@alien8.de \
    --cc=jason.cj.chen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yakui.zhao@intel.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