lkml.org 
[lkml]   [2012]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Documentation/kvm : Add documentation on Hypercalls
    On Wed, Aug 01, 2012 at 04:19:01PM +0530, Raghavendra K T wrote:
    > On 08/01/2012 08:37 AM, Marcelo Tosatti wrote:
    > >On Tue, Jul 24, 2012 at 02:23:59PM +0530, Raghavendra K T wrote:
    > >>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>
    > >>---
    > >>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.
    >
    > How is this:
    > KVM Hypercalls have a three-byte sequence of vmcall instruction. But
    > The hypervisor can replace it with the instructions that are guaranteed
    > to be supported.
    >
    > (Related question: Is it not that vmcall instruction is patched by 0f
    > 01 09 vmmcall instruction sequence for amd?.

    Yes, it is.

    Linux guest binary contains the Intel vmcall instruction, which is
    patched on AMD to vmmcall.

    > So I think we need to
    > change documentation I referred from arch/x86/include/asm/kvm_para.h.
    > It should be vmcall / vmmcall instead of vmrun and vmmrun)

    Yes.

    > >>+
    > >>+ 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).
    > >
    >
    > Okay, agree. I did not know about hyper-v. Above one is for X86 and
    > KVM (and not X86 / hyper-v). So I should remove ABI and probably say,

    Just say "Linux x86 Hypercall", yeah.

    > KVM x86 Hypercall
    > ==================
    > 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.
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe kvm" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html


    \
     
     \ /
      Last update: 2012-08-01 21:41    [W:0.031 / U:124.280 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site