Skip to content

Commit 7fe718f

Browse files
committed
tools headers UAPI: Sync linux/kvm.h with the kernel sources
To pick the changes in: bfbab44 ("KVM: arm64: Implement PSCI SYSTEM_SUSPEND") 7b33a09 ("KVM: arm64: Add support for userspace to suspend a vCPU") ffbb61d ("KVM: x86: Accept KVM_[GS]ET_TSC_KHZ as a VM ioctl.") 661a20f ("KVM: x86/xen: Advertise and document KVM_XEN_HVM_CONFIG_EVTCHN_SEND") fde0451 ("KVM: x86/xen: Support per-vCPU event channel upcall via local APIC") 28d1629 ("KVM: x86/xen: Kernel acceleration for XENVER_version") 5363952 ("KVM: x86/xen: handle PV timers oneshot mode") 942c249 ("KVM: x86/xen: Add KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID") 2fd6df2 ("KVM: x86/xen: intercept EVTCHNOP_send from guests") 3502573 ("KVM: x86/xen: Support direct injection of event channel events") That automatically adds support for this new ioctl: $ tools/perf/trace/beauty/kvm_ioctl.sh > before $ cp include/uapi/linux/kvm.h tools/include/uapi/linux/kvm.h $ tools/perf/trace/beauty/kvm_ioctl.sh > after $ diff -u before after --- before 2022-06-28 12:13:07.281150509 -0300 +++ after 2022-06-28 12:13:16.423392896 -0300 @@ -98,6 +98,7 @@ [0xcc] = "GET_SREGS2", [0xcd] = "SET_SREGS2", [0xce] = "GET_STATS_FD", + [0xd0] = "XEN_HVM_EVTCHN_SEND", [0xe0] = "CREATE_DEVICE", [0xe1] = "SET_DEVICE_ATTR", [0xe2] = "GET_DEVICE_ATTR", $ This silences these perf build warning: 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: David Woodhouse <[email protected]> Cc: Ian Rogers <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Joao Martins <[email protected]> Cc: Marc Zyngier <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Oliver Upton <[email protected]> Cc: Paolo Bonzini <[email protected]> Link: http://lore.kernel.org/lkml/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 579d6c6 commit 7fe718f

File tree

1 file changed

+52
-2
lines changed
  • tools/include/uapi/linux

1 file changed

+52
-2
lines changed

tools/include/uapi/linux/kvm.h

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,9 @@ struct kvm_run {
444444
#define KVM_SYSTEM_EVENT_SHUTDOWN 1
445445
#define KVM_SYSTEM_EVENT_RESET 2
446446
#define KVM_SYSTEM_EVENT_CRASH 3
447+
#define KVM_SYSTEM_EVENT_WAKEUP 4
448+
#define KVM_SYSTEM_EVENT_SUSPEND 5
449+
#define KVM_SYSTEM_EVENT_SEV_TERM 6
447450
__u32 type;
448451
__u32 ndata;
449452
union {
@@ -646,6 +649,7 @@ struct kvm_vapic_addr {
646649
#define KVM_MP_STATE_OPERATING 7
647650
#define KVM_MP_STATE_LOAD 8
648651
#define KVM_MP_STATE_AP_RESET_HOLD 9
652+
#define KVM_MP_STATE_SUSPENDED 10
649653

650654
struct kvm_mp_state {
651655
__u32 mp_state;
@@ -1150,8 +1154,9 @@ struct kvm_ppc_resize_hpt {
11501154
#define KVM_CAP_S390_MEM_OP_EXTENSION 211
11511155
#define KVM_CAP_PMU_CAPABILITY 212
11521156
#define KVM_CAP_DISABLE_QUIRKS2 213
1153-
/* #define KVM_CAP_VM_TSC_CONTROL 214 */
1157+
#define KVM_CAP_VM_TSC_CONTROL 214
11541158
#define KVM_CAP_SYSTEM_EVENT_DATA 215
1159+
#define KVM_CAP_ARM_SYSTEM_SUSPEND 216
11551160

11561161
#ifdef KVM_CAP_IRQ_ROUTING
11571162

@@ -1240,6 +1245,7 @@ struct kvm_x86_mce {
12401245
#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
12411246
#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
12421247
#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
1248+
#define KVM_XEN_HVM_CONFIG_EVTCHN_SEND (1 << 5)
12431249

12441250
struct kvm_xen_hvm_config {
12451251
__u32 flags;
@@ -1478,7 +1484,8 @@ struct kvm_s390_ucas_mapping {
14781484
#define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2)
14791485
/* Available with KVM_CAP_PPC_GET_PVINFO */
14801486
#define KVM_PPC_GET_PVINFO _IOW(KVMIO, 0xa1, struct kvm_ppc_pvinfo)
1481-
/* Available with KVM_CAP_TSC_CONTROL */
1487+
/* Available with KVM_CAP_TSC_CONTROL for a vCPU, or with
1488+
* KVM_CAP_VM_TSC_CONTROL to set defaults for a VM */
14821489
#define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2)
14831490
#define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3)
14841491
/* Available with KVM_CAP_PCI_2_3 */
@@ -1694,6 +1701,32 @@ struct kvm_xen_hvm_attr {
16941701
struct {
16951702
__u64 gfn;
16961703
} shared_info;
1704+
struct {
1705+
__u32 send_port;
1706+
__u32 type; /* EVTCHNSTAT_ipi / EVTCHNSTAT_interdomain */
1707+
__u32 flags;
1708+
#define KVM_XEN_EVTCHN_DEASSIGN (1 << 0)
1709+
#define KVM_XEN_EVTCHN_UPDATE (1 << 1)
1710+
#define KVM_XEN_EVTCHN_RESET (1 << 2)
1711+
/*
1712+
* Events sent by the guest are either looped back to
1713+
* the guest itself (potentially on a different port#)
1714+
* or signalled via an eventfd.
1715+
*/
1716+
union {
1717+
struct {
1718+
__u32 port;
1719+
__u32 vcpu;
1720+
__u32 priority;
1721+
} port;
1722+
struct {
1723+
__u32 port; /* Zero for eventfd */
1724+
__s32 fd;
1725+
} eventfd;
1726+
__u32 padding[4];
1727+
} deliver;
1728+
} evtchn;
1729+
__u32 xen_version;
16971730
__u64 pad[8];
16981731
} u;
16991732
};
@@ -1702,11 +1735,17 @@ struct kvm_xen_hvm_attr {
17021735
#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0
17031736
#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1
17041737
#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
1738+
/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_EVTCHN_SEND */
1739+
#define KVM_XEN_ATTR_TYPE_EVTCHN 0x3
1740+
#define KVM_XEN_ATTR_TYPE_XEN_VERSION 0x4
17051741

17061742
/* Per-vCPU Xen attributes */
17071743
#define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
17081744
#define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
17091745

1746+
/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_EVTCHN_SEND */
1747+
#define KVM_XEN_HVM_EVTCHN_SEND _IOW(KVMIO, 0xd0, struct kvm_irq_routing_xen_evtchn)
1748+
17101749
#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
17111750
#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
17121751

@@ -1724,6 +1763,13 @@ struct kvm_xen_vcpu_attr {
17241763
__u64 time_blocked;
17251764
__u64 time_offline;
17261765
} runstate;
1766+
__u32 vcpu_id;
1767+
struct {
1768+
__u32 port;
1769+
__u32 priority;
1770+
__u64 expires_ns;
1771+
} timer;
1772+
__u8 vector;
17271773
} u;
17281774
};
17291775

@@ -1734,6 +1780,10 @@ struct kvm_xen_vcpu_attr {
17341780
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3
17351781
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4
17361782
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5
1783+
/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_EVTCHN_SEND */
1784+
#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID 0x6
1785+
#define KVM_XEN_VCPU_ATTR_TYPE_TIMER 0x7
1786+
#define KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR 0x8
17371787

17381788
/* Secure Encrypted Virtualization command */
17391789
enum sev_cmd_id {

0 commit comments

Comments
 (0)