Thread (8 messages) 8 messages, 3 authors, 2012-08-02

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.txt
diff --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).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help