Re: [PATCH v8 1/3] KVM: x86: export svm/vmx exit code and vector code to userspace

2012-09-20 Thread Marcelo Tosatti
On Mon, Sep 17, 2012 at 07:58:57AM -0700, Arnaldo Carvalho de Melo wrote:
 Em Mon, Sep 17, 2012 at 04:31:13PM +0800, Dong Hao escreveu:
  From: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
  
  Exporting KVM exit information to userspace to be consumed by perf.
  
  [ Dong Hao haod...@linux.vnet.ibm.com: rebase it on acme's git tree ]
  Signed-off-by: Dong Hao haod...@linux.vnet.ibm.com
  Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
 
 Do we have acked/reviewed-by for this parth? Marcelo? Avi?

Code move... ACK.

 
   arch/x86/include/asm/kvm.h  |   16 +++
   arch/x86/include/asm/kvm_host.h |   16 ---
   arch/x86/include/asm/svm.h  |  205 
  +--
   arch/x86/include/asm/vmx.h  |  127 
   arch/x86/kvm/trace.h|   89 -
   5 files changed, 230 insertions(+), 223 deletions(-)
  
  diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h
  index 246617e..41e08cb 100644
  --- a/arch/x86/include/asm/kvm.h
  +++ b/arch/x86/include/asm/kvm.h
  @@ -9,6 +9,22 @@
   #include linux/types.h
   #include linux/ioctl.h
   
  +#define DE_VECTOR 0
  +#define DB_VECTOR 1
  +#define BP_VECTOR 3
  +#define OF_VECTOR 4
  +#define BR_VECTOR 5
  +#define UD_VECTOR 6
  +#define NM_VECTOR 7
  +#define DF_VECTOR 8
  +#define TS_VECTOR 10
  +#define NP_VECTOR 11
  +#define SS_VECTOR 12
  +#define GP_VECTOR 13
  +#define PF_VECTOR 14
  +#define MF_VECTOR 16
  +#define MC_VECTOR 18
  +
   /* Select x86 specific features in linux/kvm.h */
   #define __KVM_HAVE_PIT
   #define __KVM_HAVE_IOAPIC
  diff --git a/arch/x86/include/asm/kvm_host.h 
  b/arch/x86/include/asm/kvm_host.h
  index 09155d6..1eaa6b0 100644
  --- a/arch/x86/include/asm/kvm_host.h
  +++ b/arch/x86/include/asm/kvm_host.h
  @@ -75,22 +75,6 @@
   #define KVM_HPAGE_MASK(x)  (~(KVM_HPAGE_SIZE(x) - 1))
   #define KVM_PAGES_PER_HPAGE(x) (KVM_HPAGE_SIZE(x) / PAGE_SIZE)
   
  -#define DE_VECTOR 0
  -#define DB_VECTOR 1
  -#define BP_VECTOR 3
  -#define OF_VECTOR 4
  -#define BR_VECTOR 5
  -#define UD_VECTOR 6
  -#define NM_VECTOR 7
  -#define DF_VECTOR 8
  -#define TS_VECTOR 10
  -#define NP_VECTOR 11
  -#define SS_VECTOR 12
  -#define GP_VECTOR 13
  -#define PF_VECTOR 14
  -#define MF_VECTOR 16
  -#define MC_VECTOR 18
  -
   #define SELECTOR_TI_MASK (1  2)
   #define SELECTOR_RPL_MASK 0x03
   
  diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h
  index f2b83bc..cdf5674 100644
  --- a/arch/x86/include/asm/svm.h
  +++ b/arch/x86/include/asm/svm.h
  @@ -1,6 +1,135 @@
   #ifndef __SVM_H
   #define __SVM_H
   
  +#define SVM_EXIT_READ_CR0  0x000
  +#define SVM_EXIT_READ_CR3  0x003
  +#define SVM_EXIT_READ_CR4  0x004
  +#define SVM_EXIT_READ_CR8  0x008
  +#define SVM_EXIT_WRITE_CR0 0x010
  +#define SVM_EXIT_WRITE_CR3 0x013
  +#define SVM_EXIT_WRITE_CR4 0x014
  +#define SVM_EXIT_WRITE_CR8 0x018
  +#define SVM_EXIT_READ_DR0  0x020
  +#define SVM_EXIT_READ_DR1  0x021
  +#define SVM_EXIT_READ_DR2  0x022
  +#define SVM_EXIT_READ_DR3  0x023
  +#define SVM_EXIT_READ_DR4  0x024
  +#define SVM_EXIT_READ_DR5  0x025
  +#define SVM_EXIT_READ_DR6  0x026
  +#define SVM_EXIT_READ_DR7  0x027
  +#define SVM_EXIT_WRITE_DR0 0x030
  +#define SVM_EXIT_WRITE_DR1 0x031
  +#define SVM_EXIT_WRITE_DR2 0x032
  +#define SVM_EXIT_WRITE_DR3 0x033
  +#define SVM_EXIT_WRITE_DR4 0x034
  +#define SVM_EXIT_WRITE_DR5 0x035
  +#define SVM_EXIT_WRITE_DR6 0x036
  +#define SVM_EXIT_WRITE_DR7 0x037
  +#define SVM_EXIT_EXCP_BASE 0x040
  +#define SVM_EXIT_INTR  0x060
  +#define SVM_EXIT_NMI   0x061
  +#define SVM_EXIT_SMI   0x062
  +#define SVM_EXIT_INIT  0x063
  +#define SVM_EXIT_VINTR 0x064
  +#define SVM_EXIT_CR0_SEL_WRITE 0x065
  +#define SVM_EXIT_IDTR_READ 0x066
  +#define SVM_EXIT_GDTR_READ 0x067
  +#define SVM_EXIT_LDTR_READ 0x068
  +#define SVM_EXIT_TR_READ   0x069
  +#define SVM_EXIT_IDTR_WRITE0x06a
  +#define SVM_EXIT_GDTR_WRITE0x06b
  +#define SVM_EXIT_LDTR_WRITE0x06c
  +#define SVM_EXIT_TR_WRITE  0x06d
  +#define SVM_EXIT_RDTSC 0x06e
  +#define SVM_EXIT_RDPMC 0x06f
  +#define SVM_EXIT_PUSHF 0x070
  +#define SVM_EXIT_POPF  0x071
  +#define SVM_EXIT_CPUID 0x072
  +#define SVM_EXIT_RSM   0x073
  +#define SVM_EXIT_IRET  0x074
  +#define SVM_EXIT_SWINT 0x075
  +#define SVM_EXIT_INVD  0x076
  +#define SVM_EXIT_PAUSE 0x077
  +#define SVM_EXIT_HLT   0x078
  +#define SVM_EXIT_INVLPG0x079
  +#define SVM_EXIT_INVLPGA   0x07a
  +#define SVM_EXIT_IOIO  0x07b
  +#define SVM_EXIT_MSR   0x07c
  +#define SVM_EXIT_TASK_SWITCH   0x07d
  +#define SVM_EXIT_FERR_FREEZE   0x07e
  +#define SVM_EXIT_SHUTDOWN  0x07f
  +#define SVM_EXIT_VMRUN 0x080
  +#define SVM_EXIT_VMMCALL   0x081
  

Re: [PATCH v8 1/3] KVM: x86: export svm/vmx exit code and vector code to userspace

2012-09-17 Thread Arnaldo Carvalho de Melo
Em Mon, Sep 17, 2012 at 04:31:13PM +0800, Dong Hao escreveu:
 From: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
 
 Exporting KVM exit information to userspace to be consumed by perf.
 
 [ Dong Hao haod...@linux.vnet.ibm.com: rebase it on acme's git tree ]
 Signed-off-by: Dong Hao haod...@linux.vnet.ibm.com
 Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com

Do we have acked/reviewed-by for this parth? Marcelo? Avi?

  arch/x86/include/asm/kvm.h  |   16 +++
  arch/x86/include/asm/kvm_host.h |   16 ---
  arch/x86/include/asm/svm.h  |  205 
 +--
  arch/x86/include/asm/vmx.h  |  127 
  arch/x86/kvm/trace.h|   89 -
  5 files changed, 230 insertions(+), 223 deletions(-)
 
 diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h
 index 246617e..41e08cb 100644
 --- a/arch/x86/include/asm/kvm.h
 +++ b/arch/x86/include/asm/kvm.h
 @@ -9,6 +9,22 @@
  #include linux/types.h
  #include linux/ioctl.h
  
 +#define DE_VECTOR 0
 +#define DB_VECTOR 1
 +#define BP_VECTOR 3
 +#define OF_VECTOR 4
 +#define BR_VECTOR 5
 +#define UD_VECTOR 6
 +#define NM_VECTOR 7
 +#define DF_VECTOR 8
 +#define TS_VECTOR 10
 +#define NP_VECTOR 11
 +#define SS_VECTOR 12
 +#define GP_VECTOR 13
 +#define PF_VECTOR 14
 +#define MF_VECTOR 16
 +#define MC_VECTOR 18
 +
  /* Select x86 specific features in linux/kvm.h */
  #define __KVM_HAVE_PIT
  #define __KVM_HAVE_IOAPIC
 diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
 index 09155d6..1eaa6b0 100644
 --- a/arch/x86/include/asm/kvm_host.h
 +++ b/arch/x86/include/asm/kvm_host.h
 @@ -75,22 +75,6 @@
  #define KVM_HPAGE_MASK(x)(~(KVM_HPAGE_SIZE(x) - 1))
  #define KVM_PAGES_PER_HPAGE(x)   (KVM_HPAGE_SIZE(x) / PAGE_SIZE)
  
 -#define DE_VECTOR 0
 -#define DB_VECTOR 1
 -#define BP_VECTOR 3
 -#define OF_VECTOR 4
 -#define BR_VECTOR 5
 -#define UD_VECTOR 6
 -#define NM_VECTOR 7
 -#define DF_VECTOR 8
 -#define TS_VECTOR 10
 -#define NP_VECTOR 11
 -#define SS_VECTOR 12
 -#define GP_VECTOR 13
 -#define PF_VECTOR 14
 -#define MF_VECTOR 16
 -#define MC_VECTOR 18
 -
  #define SELECTOR_TI_MASK (1  2)
  #define SELECTOR_RPL_MASK 0x03
  
 diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h
 index f2b83bc..cdf5674 100644
 --- a/arch/x86/include/asm/svm.h
 +++ b/arch/x86/include/asm/svm.h
 @@ -1,6 +1,135 @@
  #ifndef __SVM_H
  #define __SVM_H
  
 +#define SVM_EXIT_READ_CR0  0x000
 +#define SVM_EXIT_READ_CR3  0x003
 +#define SVM_EXIT_READ_CR4  0x004
 +#define SVM_EXIT_READ_CR8  0x008
 +#define SVM_EXIT_WRITE_CR0 0x010
 +#define SVM_EXIT_WRITE_CR3 0x013
 +#define SVM_EXIT_WRITE_CR4 0x014
 +#define SVM_EXIT_WRITE_CR8 0x018
 +#define SVM_EXIT_READ_DR0  0x020
 +#define SVM_EXIT_READ_DR1  0x021
 +#define SVM_EXIT_READ_DR2  0x022
 +#define SVM_EXIT_READ_DR3  0x023
 +#define SVM_EXIT_READ_DR4  0x024
 +#define SVM_EXIT_READ_DR5  0x025
 +#define SVM_EXIT_READ_DR6  0x026
 +#define SVM_EXIT_READ_DR7  0x027
 +#define SVM_EXIT_WRITE_DR0 0x030
 +#define SVM_EXIT_WRITE_DR1 0x031
 +#define SVM_EXIT_WRITE_DR2 0x032
 +#define SVM_EXIT_WRITE_DR3 0x033
 +#define SVM_EXIT_WRITE_DR4 0x034
 +#define SVM_EXIT_WRITE_DR5 0x035
 +#define SVM_EXIT_WRITE_DR6 0x036
 +#define SVM_EXIT_WRITE_DR7 0x037
 +#define SVM_EXIT_EXCP_BASE 0x040
 +#define SVM_EXIT_INTR  0x060
 +#define SVM_EXIT_NMI   0x061
 +#define SVM_EXIT_SMI   0x062
 +#define SVM_EXIT_INIT  0x063
 +#define SVM_EXIT_VINTR 0x064
 +#define SVM_EXIT_CR0_SEL_WRITE 0x065
 +#define SVM_EXIT_IDTR_READ 0x066
 +#define SVM_EXIT_GDTR_READ 0x067
 +#define SVM_EXIT_LDTR_READ 0x068
 +#define SVM_EXIT_TR_READ   0x069
 +#define SVM_EXIT_IDTR_WRITE0x06a
 +#define SVM_EXIT_GDTR_WRITE0x06b
 +#define SVM_EXIT_LDTR_WRITE0x06c
 +#define SVM_EXIT_TR_WRITE  0x06d
 +#define SVM_EXIT_RDTSC 0x06e
 +#define SVM_EXIT_RDPMC 0x06f
 +#define SVM_EXIT_PUSHF 0x070
 +#define SVM_EXIT_POPF  0x071
 +#define SVM_EXIT_CPUID 0x072
 +#define SVM_EXIT_RSM   0x073
 +#define SVM_EXIT_IRET  0x074
 +#define SVM_EXIT_SWINT 0x075
 +#define SVM_EXIT_INVD  0x076
 +#define SVM_EXIT_PAUSE 0x077
 +#define SVM_EXIT_HLT   0x078
 +#define SVM_EXIT_INVLPG0x079
 +#define SVM_EXIT_INVLPGA   0x07a
 +#define SVM_EXIT_IOIO  0x07b
 +#define SVM_EXIT_MSR   0x07c
 +#define SVM_EXIT_TASK_SWITCH   0x07d
 +#define SVM_EXIT_FERR_FREEZE   0x07e
 +#define SVM_EXIT_SHUTDOWN  0x07f
 +#define SVM_EXIT_VMRUN 0x080
 +#define SVM_EXIT_VMMCALL   0x081
 +#define SVM_EXIT_VMLOAD0x082
 +#define SVM_EXIT_VMSAVE0x083
 +#define SVM_EXIT_STGI  0x084
 +#define SVM_EXIT_CLGI  0x085
 +#define SVM_EXIT_SKINIT0x086
 +#define SVM_EXIT_RDTSCP0x087