History

tools headers uapi: Sync linux/kvm.h with the kernel sources

To get the changes from these csets: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID") 2a31b9db1535 ("kvm: introduce manual dirty log reprotect") That results in these new KVM IOCTLs being supported in 'perf trace' when beautifying the cmd ioctl syscall argument: $ 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 2019-01-04 11:44:23.506605301 -0300 +++ after 2019-01-04 11:44:36.878730583 -0300 @@ -86,6 +86,8 @@ [0xbd] = "HYPERV_EVENTFD", [0xbe] = "GET_NESTED_STATE", [0xbf] = "SET_NESTED_STATE", + [0xc0] = "CLEAR_DIRTY_LOG", + [0xc1] = "GET_SUPPORTED_HV_CPUID", [0xe0] = "CREATE_DEVICE", [0xe1] = "SET_DEVICE_ATTR", [0xe2] = "GET_DEVICE_ATTR", $ At some point we should be able to do something: # perf trace -e ioctl(cmd == KVM_CLEAR_DIRTY_LOG) And have just those ioctls, optionally with callchains, etc.

Arnaldo Carvalho de Melo committed 7 years ago

Commit 558517c1 parent 4001b6a1 file · +19 −0Browse files

Showing the changes to tools/include/uapi (1 of 1 file). Show all

Unified · Split

tools/include/uapi/linux/kvm.h+19−0
@@ -492,6 +492,17 @@ struct kvm_dirty_log { · 491 unmodified lines
492492 };
493493 };
494494
495+/* for KVM_CLEAR_DIRTY_LOG */
496+struct kvm_clear_dirty_log {
497+ __u32 slot;
498+ __u32 num_pages;
499+ __u64 first_page;
500+ union {
501+ void __user *dirty_bitmap; /* one bit per page */
502+ __u64 padding2;
503+ };
504+};
505+
495506 /* for KVM_SET_SIGNAL_MASK */
496507 struct kvm_signal_mask {
497508 __u32 len;
@@ -975,6 +986,8 @@ struct kvm_ppc_resize_hpt { · 477 unmodified lines
975986 #define KVM_CAP_HYPERV_ENLIGHTENED_VMCS 163
976987 #define KVM_CAP_EXCEPTION_PAYLOAD 164
977988 #define KVM_CAP_ARM_VM_IPA_SIZE 165
989+#define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166
990+#define KVM_CAP_HYPERV_CPUID 167
978991
979992 #ifdef KVM_CAP_IRQ_ROUTING
980993
@@ -1421,6 +1434,12 @@ struct kvm_enc_region { · 440 unmodified lines
14211434 #define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state)
14221435 #define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state)
14231436
1437+/* Available with KVM_CAP_MANUAL_DIRTY_LOG_PROTECT */
1438+#define KVM_CLEAR_DIRTY_LOG _IOWR(KVMIO, 0xc0, struct kvm_clear_dirty_log)
1439+
1440+/* Available with KVM_CAP_HYPERV_CPUID */
1441+#define KVM_GET_SUPPORTED_HV_CPUID _IOWR(KVMIO, 0xc1, struct kvm_cpuid2)
1442+
14241443 /* Secure Encrypted Virtualization command */
14251444 enum sev_cmd_id {
14261445 /* Guest initialization commands */