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.
next prev parent 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