Skip to content

Commit 0210c15

Browse files
committed
tools headers uapi: Update tools's copies of kvm headers
To get the changes in: a449938 ("KVM: s390: Add huge page enablement control") 8fcc4b5 ("kvm: nVMX: Introduce KVM_CAP_NESTED_STATE") be26b3a ("arm64: KVM: export the capability to set guest SError syndrome") b7b27fa ("arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS") b0960b9 ("KVM: arm: Add 32bit get/set events support") a3da7b4 ("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 <[email protected]> Cc: Christian Borntraeger <[email protected]> Cc: Cornelia Huck <[email protected]> Cc: David Ahern <[email protected]> Cc: David Hildenbrand <[email protected]> Cc: Dongjiu Geng <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: James Morse <[email protected]> Cc: Janosch Frank <[email protected]> Cc: Jim Mattson <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Marc Zyngier <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paolo Bonzini <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Wang Nan <[email protected]> Link: https://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 434ea1b commit 0210c15

File tree

5 files changed

+73
-1
lines changed
  • tools
    • arch
      • arm/include/uapi/asm
      • arm64/include/uapi/asm
      • s390/include/uapi/asm
      • x86/include/uapi/asm
    • include/uapi/linux

5 files changed

+73
-1
lines changed

tools/arch/arm/include/uapi/asm/kvm.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#define __KVM_HAVE_GUEST_DEBUG
2828
#define __KVM_HAVE_IRQ_LINE
2929
#define __KVM_HAVE_READONLY_MEM
30+
#define __KVM_HAVE_VCPU_EVENTS
3031

3132
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
3233

@@ -125,6 +126,18 @@ struct kvm_sync_regs {
125126
struct kvm_arch_memory_slot {
126127
};
127128

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+
128141
/* If you need to interpret the index values, here is the key: */
129142
#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
130143
#define KVM_REG_ARM_COPROC_SHIFT 16

tools/arch/arm64/include/uapi/asm/kvm.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#define __KVM_HAVE_GUEST_DEBUG
4040
#define __KVM_HAVE_IRQ_LINE
4141
#define __KVM_HAVE_READONLY_MEM
42+
#define __KVM_HAVE_VCPU_EVENTS
4243

4344
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
4445

@@ -154,6 +155,18 @@ struct kvm_sync_regs {
154155
struct kvm_arch_memory_slot {
155156
};
156157

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+
157170
/* If you need to interpret the index values, here is the key: */
158171
#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
159172
#define KVM_REG_ARM_COPROC_SHIFT 16

tools/arch/s390/include/uapi/asm/kvm.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
/*
55
* KVM s390 specific structures and definitions
66
*
7-
* Copyright IBM Corp. 2008
7+
* Copyright IBM Corp. 2008, 2018
88
*
99
* Author(s): Carsten Otte <[email protected]>
1010
* Christian Borntraeger <[email protected]>
@@ -225,6 +225,7 @@ struct kvm_guest_debug_arch {
225225
#define KVM_SYNC_FPRS (1UL << 8)
226226
#define KVM_SYNC_GSCB (1UL << 9)
227227
#define KVM_SYNC_BPBC (1UL << 10)
228+
#define KVM_SYNC_ETOKEN (1UL << 11)
228229
/* length and alignment of the sdnx as a power of two */
229230
#define SDNXC 8
230231
#define SDNXL (1UL << SDNXC)
@@ -258,6 +259,8 @@ struct kvm_sync_regs {
258259
struct {
259260
__u64 reserved1[2];
260261
__u64 gscb[4];
262+
__u64 etoken;
263+
__u64 etoken_extension;
261264
};
262265
};
263266
};

tools/arch/x86/include/uapi/asm/kvm.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,4 +378,41 @@ struct kvm_sync_regs {
378378
#define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0)
379379
#define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1)
380380

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+
381418
#endif /* _ASM_X86_KVM_H */

tools/include/uapi/linux/kvm.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt {
949949
#define KVM_CAP_GET_MSR_FEATURES 153
950950
#define KVM_CAP_HYPERV_EVENTFD 154
951951
#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
952955

953956
#ifdef KVM_CAP_IRQ_ROUTING
954957

@@ -1391,6 +1394,9 @@ struct kvm_enc_region {
13911394
/* Available with KVM_CAP_HYPERV_EVENTFD */
13921395
#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
13931396

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)
13941400

13951401
/* Secure Encrypted Virtualization command */
13961402
enum sev_cmd_id {

0 commit comments

Comments
 (0)