Re: [PATCH 1/5] powerpc: define ePAPR hcall exit interface

2013-07-15 Thread Alexander Graf

On 15.07.2013, at 13:11, Bharat Bhushan wrote:

 This patch defines the ePAPR hcall exit interface to guest user space.

The subject line is misleading. This is a kvm patch. Same applies for most 
other patches.

 
 Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com
 ---
 Documentation/virtual/kvm/api.txt |   20 
 include/uapi/linux/kvm.h  |7 +++
 2 files changed, 27 insertions(+), 0 deletions(-)
 
 diff --git a/Documentation/virtual/kvm/api.txt 
 b/Documentation/virtual/kvm/api.txt
 index 66dd2aa..054f2f4 100644
 --- a/Documentation/virtual/kvm/api.txt
 +++ b/Documentation/virtual/kvm/api.txt
 @@ -2597,6 +2597,26 @@ The possible hypercalls are defined in the Power 
 Architecture Platform
 Requirements (PAPR) document available from www.power.org (free
 developer registration required to access it).
 
 + /* KVM_EXIT_EPAPR_HCALL */
 + struct {
 + __u64 nr;
 + __u64 ret;
 + __u64 args[8];
 + } epapr_hcall;
 +
 +This is used on PowerPC platforms that support ePAPR hcalls.
 +It occurs when a guest does a hypercall (as defined
 +in the ePAPR 1.1) and the hcall is not handled by the kernel.
 +
 +The 'nr' field contains the hypercall number (from the guest R11),
 +and 'args' contains the arguments (from the guest R3 - R10).
 +Userspace should put the return code in 'ret' and any extra returned
 +values in args[].  If the VM is not in 64-bit mode KVM zeros
 +the upper half of each field in the struct.
 +
 +As per the ePAPR hcall ABI, the return value is returned to
 +the guest in R3 and output return values in R4 - R10.
 +
   /* KVM_EXIT_S390_TSCH */
   struct {
   __u16 subchannel_id;
 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
 index acccd08..01ee50e 100644
 --- a/include/uapi/linux/kvm.h
 +++ b/include/uapi/linux/kvm.h
 @@ -171,6 +171,7 @@ struct kvm_pit_config {
 #define KVM_EXIT_WATCHDOG 21
 #define KVM_EXIT_S390_TSCH22
 #define KVM_EXIT_EPR  23
 +#define KVM_EXIT_EPAPR_HCALL  24
 
 /* For KVM_EXIT_INTERNAL_ERROR */
 /* Emulate instruction failed. */
 @@ -288,6 +289,12 @@ struct kvm_run {
   __u64 ret;
   __u64 args[9];
   } papr_hcall;
 + /* KVM_EXIT_EPAPR_HCALL */
 + struct {
 + __u64 nr;
 + __u64 ret;
 + __u64 args[8];
 + } epapr_hcall;

This should be at the end of the union.


Alex

   /* KVM_EXIT_S390_TSCH */
   struct {
   __u16 subchannel_id;
 -- 
 1.7.0.4
 
 

--
To unsubscribe from this list: send the line unsubscribe kvm-ppc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 1/5] powerpc: define ePAPR hcall exit interface

2013-07-15 Thread Bhushan Bharat-R65777


 -Original Message-
 From: Alexander Graf [mailto:ag...@suse.de]
 Sent: Monday, July 15, 2013 4:51 PM
 To: Bhushan Bharat-R65777
 Cc: k...@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood Scott-B07421; Yoder
 Stuart-B08248; Bhushan Bharat-R65777
 Subject: Re: [PATCH 1/5] powerpc: define ePAPR hcall exit interface
 
 
 On 15.07.2013, at 13:11, Bharat Bhushan wrote:
 
  This patch defines the ePAPR hcall exit interface to guest user space.
 
 The subject line is misleading. This is a kvm patch. Same applies for most 
 other
 patches.

Ok, will make this kvm: powerpc: define ePAPR hcall exit interface 

 
 
  Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com
  ---
  Documentation/virtual/kvm/api.txt |   20 
  include/uapi/linux/kvm.h  |7 +++
  2 files changed, 27 insertions(+), 0 deletions(-)
 
  diff --git a/Documentation/virtual/kvm/api.txt
  b/Documentation/virtual/kvm/api.txt
  index 66dd2aa..054f2f4 100644
  --- a/Documentation/virtual/kvm/api.txt
  +++ b/Documentation/virtual/kvm/api.txt
  @@ -2597,6 +2597,26 @@ The possible hypercalls are defined in the
  Power Architecture Platform Requirements (PAPR) document available
  from www.power.org (free developer registration required to access it).
 
  +   /* KVM_EXIT_EPAPR_HCALL */
  +   struct {
  +   __u64 nr;
  +   __u64 ret;
  +   __u64 args[8];
  +   } epapr_hcall;
  +
  +This is used on PowerPC platforms that support ePAPR hcalls.
  +It occurs when a guest does a hypercall (as defined in the ePAPR 1.1)
  +and the hcall is not handled by the kernel.
  +
  +The 'nr' field contains the hypercall number (from the guest R11),
  +and 'args' contains the arguments (from the guest R3 - R10).
  +Userspace should put the return code in 'ret' and any extra returned
  +values in args[].  If the VM is not in 64-bit mode KVM zeros the
  +upper half of each field in the struct.
  +
  +As per the ePAPR hcall ABI, the return value is returned to the guest
  +in R3 and output return values in R4 - R10.
  +
  /* KVM_EXIT_S390_TSCH */
  struct {
  __u16 subchannel_id;
  diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index
  acccd08..01ee50e 100644
  --- a/include/uapi/linux/kvm.h
  +++ b/include/uapi/linux/kvm.h
  @@ -171,6 +171,7 @@ struct kvm_pit_config {
  #define KVM_EXIT_WATCHDOG 21
  #define KVM_EXIT_S390_TSCH22
  #define KVM_EXIT_EPR  23
  +#define KVM_EXIT_EPAPR_HCALL  24
 
  /* For KVM_EXIT_INTERNAL_ERROR */
  /* Emulate instruction failed. */
  @@ -288,6 +289,12 @@ struct kvm_run {
  __u64 ret;
  __u64 args[9];
  } papr_hcall;
  +   /* KVM_EXIT_EPAPR_HCALL */
  +   struct {
  +   __u64 nr;
  +   __u64 ret;
  +   __u64 args[8];
  +   } epapr_hcall;
 
 This should be at the end of the union.

Ok.

-Bharat

 
 
 Alex
 
  /* KVM_EXIT_S390_TSCH */
  struct {
  __u16 subchannel_id;
  --
  1.7.0.4
 
 
 


--
To unsubscribe from this list: send the line unsubscribe kvm-ppc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html