* [PATCH 0/3] Documentation : hypercalls
@ 2012-08-07 7:39 Raghavendra K T
2012-08-07 7:39 ` [PATCH 1/3] Documentation/kvm : Add documentation on hypercalls Raghavendra K T
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:39 UTC (permalink / raw)
To: Rob Landley, linux-kernel, linux-doc
Cc: Alexander Graf, Randy Dunlap, KVM, H. Peter Anvin,
Raghavendra K T, Marcelo Tosatti, Gleb Natapov, Ingo Molnar,
Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
This is the hypercall documentation patch series
First patch covers KVM specific hypercall information.
second patch is has typo fix for vmcall instruction
comment in kvm_para.h
Third patch includes a veryful documentation on PowerPC
hypercalls originally written by Alex
Changes since initial post:
- Added hypercall ABI (Peter)
- made KVM_HC_VAPIC_POLL_IRQ active explicitly (Randy)
- Changed vmrun/vmmrun ==> vmcall/vmmcall (Marcelo)
- use Linux KVM hypercall instead of ABI (Marcelo)
- correct PowerPC typo (Alex)
- Remove value field (Alex)
Raghavendra K T (2):
Documentation/kvm : Add documentation on hypercalls
Documentation/header : Correct vmrun to vmcall typo
Alexander Graf (1) :
Documentation/ppc: Add ppc hypercall documentation
Documentation/virtual/kvm/hypercalls.txt | 66 ++++++++++++++++++++++++++++++
Documentation/virtual/kvm/ppc-pv.txt | 22 ++++++++++
arch/x86/include/asm/kvm_para.h | 2 +-
3 files changed, 89 insertions(+), 1 deletions(-)
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] Documentation/kvm : Add documentation on hypercalls
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
@ 2012-08-07 7:39 ` Raghavendra K T
2012-08-07 7:40 ` [PATCH 2/3] Documentation/header : Correct vmrun to vmcall typo Raghavendra K T
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:39 UTC (permalink / raw)
To: Rob Landley, linux-kernel, linux-doc
Cc: Alexander Graf, Randy Dunlap, H. Peter Anvin, KVM,
Raghavendra K T, Avi Kivity, Gleb Natapov, Ingo Molnar,
Marcelo Tosatti, Jan Kiszka, Thomas Gleixner, X86
From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
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 <raghavendra.kt@linux.vnet.ibm.com>
---
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/kvm/hypercalls.txt | 66 ++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
create mode 100644 Documentation/virtual/kvm/hypercalls.txt
diff --git a/Documentation/virtual/kvm/hypercalls.txt b/Documentation/virtual/kvm/hypercalls.txt
new file mode 100644
index 0000000..ea113b5
--- /dev/null
+++ b/Documentation/virtual/kvm/hypercalls.txt
@@ -0,0 +1,66 @@
+Linux KVM Hypercall:
+===================
+X86:
+ KVM Hypercalls have a three-byte sequence of either the vmcall or the vmmcall
+ instruction. The hypervisor can replace it with instructions that are
+ guaranteed to be supported.
+
+ 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.
+
+S390:
+ R2-R7 are used for parameters 1-6. In addition, R1 is used for hypercall
+ number. The return value is written to R2.
+
+ S390 uses diagnose instruction as hypercall (0x500) along with hypercall
+ number in R1.
+
+ PowerPC:
+ It uses R3-R10 and hypercall number in R11. R4-R11 are used as output registers.
+ Return value is placed in R3.
+
+ KVM hypercalls uses 4 byte opcode, that are patched with 'hypercall-instructions'
+ property inside the device tree's /hypervisor node.
+ For more information refer to Documentation/virtual/kvm/ppc-pv.txt
+
+KVM Hypercalls Documentation
+===========================
+The template for each hypercall is:
+1. Hypercall name.
+2. Architecture(s)
+3. Status (deprecated, obsolete, active)
+4. Purpose
+
+1. KVM_HC_VAPIC_POLL_IRQ
+------------------------
+Architecture: x86
+Status: active
+Purpose: Trigger guest exit so that the host can check for pending
+interrupts on reentry.
+
+2. KVM_HC_MMU_OP
+------------------------
+Architecture: x86
+Status: deprecated.
+Purpose: Support MMU operations such as writing to PTE,
+flushing TLB, release PT.
+
+3. KVM_HC_FEATURES
+------------------------
+Architecture: PPC
+Status: active
+Purpose: Expose hypercall availability to the guest. On x86 platforms, cpuid
+used to enumerate which hypercalls are available. On PPC, either device tree
+based lookup ( which is also what EPAPR dictates) OR KVM specific enumeration
+mechanism (which is this hypercall) can be used.
+
+4. KVM_HC_PPC_MAP_MAGIC_PAGE
+------------------------
+Architecture: PPC
+Status: active
+Purpose: To enable communication between the hypervisor and guest there is a
+shared page that contains parts of supervisor visible register state.
+The guest can map this shared page to access its supervisor register through
+memory using this hypercall.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] Documentation/header : Correct vmrun to vmcall typo
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
2012-08-07 7:39 ` [PATCH 1/3] Documentation/kvm : Add documentation on hypercalls Raghavendra K T
@ 2012-08-07 7:40 ` Raghavendra K T
2012-08-07 7:40 ` [PATCH 2/3] Documentation/ppc: Add ppc hypercall documentation Raghavendra K T
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:40 UTC (permalink / raw)
To: Rob Landley, linux-kernel, linux-doc
Cc: Alexander Graf, Randy Dunlap, KVM, H. Peter Anvin,
Raghavendra K T, Marcelo Tosatti, Gleb Natapov, Ingo Molnar,
Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
---
arch/x86/include/asm/kvm_para.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 2f7712e..20f5697 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -116,7 +116,7 @@ static inline bool kvm_check_and_clear_guest_paused(void)
*/
#define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1"
-/* For KVM hypercalls, a three-byte sequence of either the vmrun or the vmmrun
+/* For KVM hypercalls, a three-byte sequence of either the vmcall or the vmmcall
* instruction. The hypervisor may replace it with something else but only the
* instructions are guaranteed to be supported.
*
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] Documentation/ppc: Add ppc hypercall documentation
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
2012-08-07 7:39 ` [PATCH 1/3] Documentation/kvm : Add documentation on hypercalls Raghavendra K T
2012-08-07 7:40 ` [PATCH 2/3] Documentation/header : Correct vmrun to vmcall typo Raghavendra K T
@ 2012-08-07 7:40 ` Raghavendra K T
2012-08-07 7:43 ` [PATCH 3/3] " Raghavendra K T
2012-08-07 7:52 ` [PATCH 0/3] Documentation : hypercalls Raghavendra K T
` (2 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:40 UTC (permalink / raw)
To: Rob Landley, linux-kernel, linux-doc
Cc: Alexander Graf, Randy Dunlap, H. Peter Anvin, KVM,
Raghavendra K T, Avi Kivity, Gleb Natapov, Ingo Molnar,
Marcelo Tosatti, Jan Kiszka, Thomas Gleixner, X86
From: Alexander Graf <agraf@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
---
Documentation/virtual/kvm/ppc-pv.txt | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/Documentation/virtual/kvm/ppc-pv.txt b/Documentation/virtual/kvm/ppc-pv.txt
index 4911cf9..4cd076f 100644
--- a/Documentation/virtual/kvm/ppc-pv.txt
+++ b/Documentation/virtual/kvm/ppc-pv.txt
@@ -174,3 +174,25 @@ following:
That way we can inject an arbitrary amount of code as replacement for a single
instruction. This allows us to check for pending interrupts when setting EE=1
for example.
+
+Hypercall ABIs in KVM on PowerPC
+=================================
+1) KVM hypercalls (ePAPR)
+
+These are ePAPR compliant hypercall implementation (mentioned above). Even
+generic hypercalls are implemented here, like the ePAPR idle hcall. These are
+available on all targets.
+
+2) PAPR hypercalls
+
+PAPR hypercalls are needed to run server PowerPC PAPR guests (-M pseries in QEMU).
+These are the same hypercalls that pHyp, the POWER hypervisor implements. Some of
+them are handled in the kernel, some are handled in user space. This is only
+available on book3s_64.
+
+3) OSI hypercalls
+
+Mac-on-Linux is another user of KVM on PowerPC, which has its own hypercall (long
+before KVM). This is supported to maintain compatibility. All these hypercalls get
+forwarded to user space. This is only useful on book3s_32, but can be used with
+book3s_64 as well.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] Documentation/ppc: Add ppc hypercall documentation
2012-08-07 7:40 ` [PATCH 2/3] Documentation/ppc: Add ppc hypercall documentation Raghavendra K T
@ 2012-08-07 7:43 ` Raghavendra K T
0 siblings, 0 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:43 UTC (permalink / raw)
To: Raghavendra K T
Cc: Rob Landley, linux-kernel, linux-doc, Alexander Graf,
Randy Dunlap, H. Peter Anvin, KVM, Avi Kivity, Gleb Natapov,
Ingo Molnar, Marcelo Tosatti, Jan Kiszka, Thomas Gleixner, X86
On 08/07/2012 01:10 PM, Raghavendra K T wrote:
> From: Alexander Graf<agraf@suse.de>
>
> Signed-off-by: Alexander Graf<agraf@suse.de>
> Signed-off-by: Raghavendra K T<raghavendra.kt@linux.vnet.ibm.com>
> ---
Sorry it meant to be 3/3.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Documentation : hypercalls
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
` (2 preceding siblings ...)
2012-08-07 7:40 ` [PATCH 2/3] Documentation/ppc: Add ppc hypercall documentation Raghavendra K T
@ 2012-08-07 7:52 ` Raghavendra K T
2012-08-09 18:31 ` Marcelo Tosatti
2012-08-13 20:40 ` Marcelo Tosatti
5 siblings, 0 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-07 7:52 UTC (permalink / raw)
To: Raghavendra K T
Cc: Rob Landley, linux-kernel, linux-doc, Alexander Graf,
Randy Dunlap, KVM, H. Peter Anvin, Marcelo Tosatti, Gleb Natapov,
Ingo Molnar, Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
On 08/07/2012 01:09 PM, Raghavendra K T wrote:
> This is the hypercall documentation patch series
> First patch covers KVM specific hypercall information.
>
> second patch has typo fix for vmcall instruction
> comment in kvm_para.h
>
> Third patch includes a very useful documentation on PowerPC
> hypercalls originally written by Alex
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Documentation : hypercalls
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
` (3 preceding siblings ...)
2012-08-07 7:52 ` [PATCH 0/3] Documentation : hypercalls Raghavendra K T
@ 2012-08-09 18:31 ` Marcelo Tosatti
2012-08-11 9:59 ` Raghavendra K T
2012-08-13 20:40 ` Marcelo Tosatti
5 siblings, 1 reply; 9+ messages in thread
From: Marcelo Tosatti @ 2012-08-09 18:31 UTC (permalink / raw)
To: Raghavendra K T
Cc: Rob Landley, linux-kernel, linux-doc, Alexander Graf,
Randy Dunlap, KVM, H. Peter Anvin, Gleb Natapov, Ingo Molnar,
Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
On Tue, Aug 07, 2012 at 01:09:46PM +0530, Raghavendra K T wrote:
> This is the hypercall documentation patch series
> First patch covers KVM specific hypercall information.
>
> second patch is has typo fix for vmcall instruction
> comment in kvm_para.h
>
> Third patch includes a veryful documentation on PowerPC
> hypercalls originally written by Alex
>
> Changes since initial post:
> - Added hypercall ABI (Peter)
> - made KVM_HC_VAPIC_POLL_IRQ active explicitly (Randy)
> - Changed vmrun/vmmrun ==> vmcall/vmmcall (Marcelo)
> - use Linux KVM hypercall instead of ABI (Marcelo)
> - correct PowerPC typo (Alex)
> - Remove value field (Alex)
>
> Raghavendra K T (2):
> Documentation/kvm : Add documentation on hypercalls
> Documentation/header : Correct vmrun to vmcall typo
>
> Alexander Graf (1) :
> Documentation/ppc: Add ppc hypercall documentation
>
> Documentation/virtual/kvm/hypercalls.txt | 66 ++++++++++++++++++++++++++++++
> Documentation/virtual/kvm/ppc-pv.txt | 22 ++++++++++
> arch/x86/include/asm/kvm_para.h | 2 +-
> 3 files changed, 89 insertions(+), 1 deletions(-)
ACK
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Documentation : hypercalls
2012-08-09 18:31 ` Marcelo Tosatti
@ 2012-08-11 9:59 ` Raghavendra K T
0 siblings, 0 replies; 9+ messages in thread
From: Raghavendra K T @ 2012-08-11 9:59 UTC (permalink / raw)
To: Marcelo Tosatti
Cc: Rob Landley, linux-kernel, linux-doc, Alexander Graf,
Randy Dunlap, KVM, H. Peter Anvin, Gleb Natapov, Ingo Molnar,
Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
On 08/10/2012 12:01 AM, Marcelo Tosatti wrote:
> On Tue, Aug 07, 2012 at 01:09:46PM +0530, Raghavendra K T wrote:
>> This is the hypercall documentation patch series
>> First patch covers KVM specific hypercall information.
>>
>> second patch is has typo fix for vmcall instruction
>> comment in kvm_para.h
>>
>> Third patch includes a veryful documentation on PowerPC
>> hypercalls originally written by Alex
>>
>> Changes since initial post:
>> - Added hypercall ABI (Peter)
>> - made KVM_HC_VAPIC_POLL_IRQ active explicitly (Randy)
>> - Changed vmrun/vmmrun ==> vmcall/vmmcall (Marcelo)
>> - use Linux KVM hypercall instead of ABI (Marcelo)
>> - correct PowerPC typo (Alex)
>> - Remove value field (Alex)
>>
>> Raghavendra K T (2):
>> Documentation/kvm : Add documentation on hypercalls
>> Documentation/header : Correct vmrun to vmcall typo
>>
>> Alexander Graf (1) :
>> Documentation/ppc: Add ppc hypercall documentation
>>
>> Documentation/virtual/kvm/hypercalls.txt | 66 ++++++++++++++++++++++++++++++
>> Documentation/virtual/kvm/ppc-pv.txt | 22 ++++++++++
>> arch/x86/include/asm/kvm_para.h | 2 +-
>> 3 files changed, 89 insertions(+), 1 deletions(-)
>
> ACK
>
>
Thank you Marcelo.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] Documentation : hypercalls
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
` (4 preceding siblings ...)
2012-08-09 18:31 ` Marcelo Tosatti
@ 2012-08-13 20:40 ` Marcelo Tosatti
5 siblings, 0 replies; 9+ messages in thread
From: Marcelo Tosatti @ 2012-08-13 20:40 UTC (permalink / raw)
To: Raghavendra K T
Cc: Rob Landley, linux-kernel, linux-doc, Alexander Graf,
Randy Dunlap, KVM, H. Peter Anvin, Gleb Natapov, Ingo Molnar,
Avi Kivity, Jan Kiszka, X86, Thomas Gleixner
On Tue, Aug 07, 2012 at 01:09:46PM +0530, Raghavendra K T wrote:
> This is the hypercall documentation patch series
> First patch covers KVM specific hypercall information.
>
> second patch is has typo fix for vmcall instruction
> comment in kvm_para.h
>
> Third patch includes a veryful documentation on PowerPC
> hypercalls originally written by Alex
>
> Changes since initial post:
> - Added hypercall ABI (Peter)
> - made KVM_HC_VAPIC_POLL_IRQ active explicitly (Randy)
> - Changed vmrun/vmmrun ==> vmcall/vmmcall (Marcelo)
> - use Linux KVM hypercall instead of ABI (Marcelo)
> - correct PowerPC typo (Alex)
> - Remove value field (Alex)
>
> Raghavendra K T (2):
> Documentation/kvm : Add documentation on hypercalls
> Documentation/header : Correct vmrun to vmcall typo
>
> Alexander Graf (1) :
> Documentation/ppc: Add ppc hypercall documentation
>
> Documentation/virtual/kvm/hypercalls.txt | 66 ++++++++++++++++++++++++++++++
> Documentation/virtual/kvm/ppc-pv.txt | 22 ++++++++++
> arch/x86/include/asm/kvm_para.h | 2 +-
> 3 files changed, 89 insertions(+), 1 deletions(-)
Applied, thanks.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-08-13 20:40 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-07 7:39 [PATCH 0/3] Documentation : hypercalls Raghavendra K T
2012-08-07 7:39 ` [PATCH 1/3] Documentation/kvm : Add documentation on hypercalls Raghavendra K T
2012-08-07 7:40 ` [PATCH 2/3] Documentation/header : Correct vmrun to vmcall typo Raghavendra K T
2012-08-07 7:40 ` [PATCH 2/3] Documentation/ppc: Add ppc hypercall documentation Raghavendra K T
2012-08-07 7:43 ` [PATCH 3/3] " Raghavendra K T
2012-08-07 7:52 ` [PATCH 0/3] Documentation : hypercalls Raghavendra K T
2012-08-09 18:31 ` Marcelo Tosatti
2012-08-11 9:59 ` Raghavendra K T
2012-08-13 20:40 ` Marcelo Tosatti
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).