diff options
| author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-09-11 10:18:58 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-09-11 12:09:26 -0400 |
| commit | 0210c156d7fd330bce1c2c842bee9d27f1c5dfeb (patch) | |
| tree | 02e05e7b25adc4e444a0a34b4e7135f6773f5807 | |
| parent | 434ea1bfbfc707f5fed9292df6a9b91dfb8e41f2 (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.h | 13 | ||||
| -rw-r--r-- | tools/arch/arm64/include/uapi/asm/kvm.h | 13 | ||||
| -rw-r--r-- | tools/arch/s390/include/uapi/asm/kvm.h | 5 | ||||
| -rw-r--r-- | tools/arch/x86/include/uapi/asm/kvm.h | 37 | ||||
| -rw-r--r-- | tools/include/uapi/linux/kvm.h | 6 |
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 { | |||
| 125 | struct kvm_arch_memory_slot { | 126 | struct kvm_arch_memory_slot { |
| 126 | }; | 127 | }; |
| 127 | 128 | ||
| 129 | /* for KVM_GET/SET_VCPU_EVENTS */ | ||
| 130 | struct 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 { | |||
| 154 | struct kvm_arch_memory_slot { | 155 | struct kvm_arch_memory_slot { |
| 155 | }; | 156 | }; |
| 156 | 157 | ||
| 158 | /* for KVM_GET/SET_VCPU_EVENTS */ | ||
| 159 | struct 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 | |||
| 387 | struct 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 */ | ||
| 397 | struct 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 */ |
| 1396 | enum sev_cmd_id { | 1402 | enum sev_cmd_id { |
