Re: [PATCH] Documentation/kvm : Add documentation on Hypercalls
From: Marcelo Tosatti <hidden>
Date: 2012-08-01 03:15:54
Also in:
lkml
On Tue, Jul 24, 2012 at 02:23:59PM +0530, Raghavendra K T wrote:
quoted hunk ↗ jump to hunk
From: Raghavendra K T <redacted> Thanks Alex for KVM_HC_FEATURES inputs and Jan for VAPIC_POLL_IRQ, and Peter (HPA) for suggesting hypercall ABI addition. Signed-off-by: Raghavendra K T <redacted> --- Please have a closer look at Hypercall ABI newly added Changes since last post: - Added hypercall ABI (Peter) - made KVM_HC_VAPIC_POLL_IRQ active explicitly (Randy) TODO: We need to add history details of each hypercall as suggested by HPA, which I could not trace easily. Hope it is easy for hypercall authors Documentation/virtual/hypercalls.txt | 71 ++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) create mode 100644 Documentation/virtual/hypercalls.txtdiff --git a/Documentation/virtual/hypercalls.txt b/Documentation/virtual/hypercalls.txt new file mode 100644 index 0000000..caffc08 --- /dev/null +++ b/Documentation/virtual/hypercalls.txt@@ -0,0 +1,71 @@ +Hypercall ABI: +============= +A brief look at calling conventions of X86, S390 and PPC +X86: + KVM Hypercalls have a three-byte sequence of either the vmrun or the vmmrun + instruction. The hypervisor can replace it with instructions that are + guaranteed to be supported.
vmcall.
+ + Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively. + The hypercall number should be placed in rax and the return value will be + placed in rax. No other registers will be clobbered unless explicitly stated + by the particular hypercall.
It depends on the hypercall. It happens that current hypercalls use the four registers, but its not an ABI (hyper-v hypercalls uses r8, for example).