aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2018-09-11 10:18:58 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2018-09-11 12:09:26 -0400
commit0210c156d7fd330bce1c2c842bee9d27f1c5dfeb (patch)
tree02e05e7b25adc4e444a0a34b4e7135f6773f5807
parent434ea1bfbfc707f5fed9292df6a9b91dfb8e41f2 (diff)
tools headers uapi: Update tools's copies of kvm headers
To get the changes in: a449938297e5 ("KVM: s390: Add huge page enablement control") 8fcc4b5923af ("kvm: nVMX: Introduce KVM_CAP_NESTED_STATE") be26b3a73413 ("arm64: KVM: export the capability to set guest SError syndrome") b7b27facc7b5 ("arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS") b0960b9569db ("KVM: arm: Add 32bit get/set events support") a3da7b4a3be5 ("KVM: s390: add etoken support for guests") This makes 'perf trace' automagically get aware of these new ioctls: $ cp include/uapi/linux/kvm.h tools/include/uapi/linux/kvm.h $ tools/perf/trace/beauty/kvm_ioctl.sh > /tmp/after $ diff -u /tmp/before /tmp/after --- /tmp/before 2018-09-11 11:18:29.173207586 -0300 +++ /tmp/after 2018-09-11 11:18:38.488200446 -0300 @@ -84,6 +84,8 @@ [0xbb] = "MEMORY_ENCRYPT_REG_REGION", [0xbc] = "MEMORY_ENCRYPT_UNREG_REGION", [0xbd] = "HYPERV_EVENTFD", + [0xbe] = "GET_NESTED_STATE", + [0xbf] = "SET_NESTED_STATE", [0xe0] = "CREATE_DEVICE", [0xe1] = "SET_DEVICE_ATTR", [0xe2] = "G And cures the following warning during perf's build: Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h' diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Cornelia Huck <cohuck@redhat.com> Cc: David Ahern <dsahern@gmail.com> Cc: David Hildenbrand <david@redhat.com> Cc: Dongjiu Geng <gengdongjiu@huawei.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: James Morse <james.morse@arm.com> Cc: Janosch Frank <frankja@linux.ibm.com> Cc: Jim Mattson <jmattson@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Wang Nan <wangnan0@huawei.com> Link: https://lkml.kernel.org/n/tip-2vvwh2o19orn56di0ksrtgzr@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/arch/arm/include/uapi/asm/kvm.h13
-rw-r--r--tools/arch/arm64/include/uapi/asm/kvm.h13
-rw-r--r--tools/arch/s390/include/uapi/asm/kvm.h5
-rw-r--r--tools/arch/x86/include/uapi/asm/kvm.h37
-rw-r--r--tools/include/uapi/linux/kvm.h6
5 files changed, 73 insertions, 1 deletions
diff --git a/tools/arch/arm/include/uapi/asm/kvm.h b/tools/arch/arm/include/uapi/asm/kvm.h
index 16e006f708ca..4602464ebdfb 100644
--- a/tools/arch/arm/include/uapi/asm/kvm.h
+++ b/tools/arch/arm/include/uapi/asm/kvm.h
@@ -27,6 +27,7 @@
27#define __KVM_HAVE_GUEST_DEBUG 27#define __KVM_HAVE_GUEST_DEBUG
28#define __KVM_HAVE_IRQ_LINE 28#define __KVM_HAVE_IRQ_LINE
29#define __KVM_HAVE_READONLY_MEM 29#define __KVM_HAVE_READONLY_MEM
30#define __KVM_HAVE_VCPU_EVENTS
30 31
31#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 32#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
32 33
@@ -125,6 +126,18 @@ struct kvm_sync_regs {
125struct kvm_arch_memory_slot { 126struct kvm_arch_memory_slot {
126}; 127};
127 128
129/* for KVM_GET/SET_VCPU_EVENTS */
130struct kvm_vcpu_events {
131 struct {
132 __u8 serror_pending;
133 __u8 serror_has_esr;
134 /* Align it to 8 bytes */
135 __u8 pad[6];
136 __u64 serror_esr;
137 } exception;
138 __u32 reserved[12];
139};
140
128/* If you need to interpret the index values, here is the key: */ 141/* If you need to interpret the index values, here is the key: */
129#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 142#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
130#define KVM_REG_ARM_COPROC_SHIFT 16 143#define KVM_REG_ARM_COPROC_SHIFT 16
diff --git a/tools/arch/arm64/include/uapi/asm/kvm.h b/tools/arch/arm64/include/uapi/asm/kvm.h
index 4e76630dd655..97c3478ee6e7 100644
--- a/tools/arch/arm64/include/uapi/asm/kvm.h
+++ b/tools/arch/arm64/include/uapi/asm/kvm.h
@@ -39,6 +39,7 @@
39#define __KVM_HAVE_GUEST_DEBUG 39#define __KVM_HAVE_GUEST_DEBUG
40#define __KVM_HAVE_IRQ_LINE 40#define __KVM_HAVE_IRQ_LINE
41#define __KVM_HAVE_READONLY_MEM 41#define __KVM_HAVE_READONLY_MEM
42#define __KVM_HAVE_VCPU_EVENTS
42 43
43#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 44#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
44 45
@@ -154,6 +155,18 @@ struct kvm_sync_regs {
154struct kvm_arch_memory_slot { 155struct kvm_arch_memory_slot {
155}; 156};
156 157
158/* for KVM_GET/SET_VCPU_EVENTS */
159struct kvm_vcpu_events {
160 struct {
161 __u8 serror_pending;
162 __u8 serror_has_esr;
163 /* Align it to 8 bytes */
164 __u8 pad[6];
165 __u64 serror_esr;
166 } exception;
167 __u32 reserved[12];
168};
169
157/* If you need to interpret the index values, here is the key: */ 170/* If you need to interpret the index values, here is the key: */
158#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 171#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
159#define KVM_REG_ARM_COPROC_SHIFT 16 172#define KVM_REG_ARM_COPROC_SHIFT 16
diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h
index 4cdaa55fabfe..9a50f02b9894 100644
--- a/tools/arch/s390/include/uapi/asm/kvm.h
+++ b/tools/arch/s390/include/uapi/asm/kvm.h
@@ -4,7 +4,7 @@
4/* 4/*
5 * KVM s390 specific structures and definitions 5 * KVM s390 specific structures and definitions
6 * 6 *
7 * Copyright IBM Corp. 2008 7 * Copyright IBM Corp. 2008, 2018
8 * 8 *
9 * Author(s): Carsten Otte <cotte@de.ibm.com> 9 * Author(s): Carsten Otte <cotte@de.ibm.com>
10 * Christian Borntraeger <borntraeger@de.ibm.com> 10 * Christian Borntraeger <borntraeger@de.ibm.com>
@@ -225,6 +225,7 @@ struct kvm_guest_debug_arch {
225#define KVM_SYNC_FPRS (1UL << 8) 225#define KVM_SYNC_FPRS (1UL << 8)
226#define KVM_SYNC_GSCB (1UL << 9) 226#define KVM_SYNC_GSCB (1UL << 9)
227#define KVM_SYNC_BPBC (1UL << 10) 227#define KVM_SYNC_BPBC (1UL << 10)
228#define KVM_SYNC_ETOKEN (1UL << 11)
228/* length and alignment of the sdnx as a power of two */ 229/* length and alignment of the sdnx as a power of two */
229#define SDNXC 8 230#define SDNXC 8
230#define SDNXL (1UL << SDNXC) 231#define SDNXL (1UL << SDNXC)
@@ -258,6 +259,8 @@ struct kvm_sync_regs {
258 struct { 259 struct {
259 __u64 reserved1[2]; 260 __u64 reserved1[2];
260 __u64 gscb[4]; 261 __u64 gscb[4];
262 __u64 etoken;
263 __u64 etoken_extension;
261 }; 264 };
262 }; 265 };
263}; 266};
diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h
index c535c2fdea13..86299efa804a 100644
--- a/tools/arch/x86/include/uapi/asm/kvm.h
+++ b/tools/arch/x86/include/uapi/asm/kvm.h
@@ -378,4 +378,41 @@ struct kvm_sync_regs {
378#define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) 378#define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0)
379#define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) 379#define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1)
380 380
381#define KVM_STATE_NESTED_GUEST_MODE 0x00000001
382#define KVM_STATE_NESTED_RUN_PENDING 0x00000002
383
384#define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001
385#define KVM_STATE_NESTED_SMM_VMXON 0x00000002
386
387struct kvm_vmx_nested_state {
388 __u64 vmxon_pa;
389 __u64 vmcs_pa;
390
391 struct {
392 __u16 flags;
393 } smm;
394};
395
396/* for KVM_CAP_NESTED_STATE */
397struct kvm_nested_state {
398 /* KVM_STATE_* flags */
399 __u16 flags;
400
401 /* 0 for VMX, 1 for SVM. */
402 __u16 format;
403
404 /* 128 for SVM, 128 + VMCS size for VMX. */
405 __u32 size;
406
407 union {
408 /* VMXON, VMCS */
409 struct kvm_vmx_nested_state vmx;
410
411 /* Pad the header to 128 bytes. */
412 __u8 pad[120];
413 };
414
415 __u8 data[0];
416};
417
381#endif /* _ASM_X86_KVM_H */ 418#endif /* _ASM_X86_KVM_H */
diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h
index b6270a3b38e9..07548de5c988 100644
--- a/tools/include/uapi/linux/kvm.h
+++ b/tools/include/uapi/linux/kvm.h
@@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt {
949#define KVM_CAP_GET_MSR_FEATURES 153 949#define KVM_CAP_GET_MSR_FEATURES 153
950#define KVM_CAP_HYPERV_EVENTFD 154 950#define KVM_CAP_HYPERV_EVENTFD 154
951#define KVM_CAP_HYPERV_TLBFLUSH 155 951#define KVM_CAP_HYPERV_TLBFLUSH 155
952#define KVM_CAP_S390_HPAGE_1M 156
953#define KVM_CAP_NESTED_STATE 157
954#define KVM_CAP_ARM_INJECT_SERROR_ESR 158
952 955
953#ifdef KVM_CAP_IRQ_ROUTING 956#ifdef KVM_CAP_IRQ_ROUTING
954 957
@@ -1391,6 +1394,9 @@ struct kvm_enc_region {
1391/* Available with KVM_CAP_HYPERV_EVENTFD */ 1394/* Available with KVM_CAP_HYPERV_EVENTFD */
1392#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd) 1395#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
1393 1396
1397/* Available with KVM_CAP_NESTED_STATE */
1398#define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state)
1399#define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state)
1394 1400
1395/* Secure Encrypted Virtualization command */ 1401/* Secure Encrypted Virtualization command */
1396enum sev_cmd_id { 1402enum sev_cmd_id {