Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools headers UAPI: Sync kvm.h headers with the kernel sources

To pick the changes in:

f97f5a56f597 ("x86/kvm/hyper-v: Add support for synthetic debugger interface")
850448f35aaf ("KVM: nVMX: Fix VMX preemption timer migration")
2c4c41325540 ("KVM: x86: Print symbolic names of VMX VM-Exit flags in traces")
cc440cdad5b7 ("KVM: nSVM: implement KVM_GET_NESTED_STATE and KVM_SET_NESTED_STATE")
f7d31e65368a ("x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit")
72de5fa4c161 ("KVM: x86: announce KVM_FEATURE_ASYNC_PF_INT")
acd05785e48c ("kvm: add capability for halt polling")
3ecad8c2c1ff ("docs: fix broken references for ReST files that moved around")

That do not result in any change in tooling, as the additions are not
being used in any table generator.

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
Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/kvm.h' differs from latest version at 'arch/x86/include/uapi/asm/kvm.h'
diff -u tools/arch/x86/include/uapi/asm/kvm.h arch/x86/include/uapi/asm/kvm.h
Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/vmx.h' differs from latest version at 'arch/x86/include/uapi/asm/vmx.h'
diff -u tools/arch/x86/include/uapi/asm/vmx.h arch/x86/include/uapi/asm/vmx.h

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Matlack <dmatlack@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Jon Doron <arilou@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Shier <pshier@google.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+36 -2
+19 -2
tools/arch/x86/include/uapi/asm/kvm.h
··· 385 385 #define KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT (1 << 4) 386 386 387 387 #define KVM_STATE_NESTED_FORMAT_VMX 0 388 - #define KVM_STATE_NESTED_FORMAT_SVM 1 /* unused */ 388 + #define KVM_STATE_NESTED_FORMAT_SVM 1 389 389 390 390 #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 391 391 #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 392 392 #define KVM_STATE_NESTED_EVMCS 0x00000004 393 393 #define KVM_STATE_NESTED_MTF_PENDING 0x00000008 394 + #define KVM_STATE_NESTED_GIF_SET 0x00000100 394 395 395 396 #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 396 397 #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 397 398 398 399 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000 399 400 401 + #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000 402 + 403 + #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001 404 + 400 405 struct kvm_vmx_nested_state_data { 401 406 __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; 402 407 __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; 403 - __u64 preemption_timer_deadline; 404 408 }; 405 409 406 410 struct kvm_vmx_nested_state_hdr { 411 + __u32 flags; 407 412 __u64 vmxon_pa; 408 413 __u64 vmcs12_pa; 414 + __u64 preemption_timer_deadline; 409 415 410 416 struct { 411 417 __u16 flags; 412 418 } smm; 419 + }; 420 + 421 + struct kvm_svm_nested_state_data { 422 + /* Save area only used if KVM_STATE_NESTED_RUN_PENDING. */ 423 + __u8 vmcb12[KVM_STATE_NESTED_SVM_VMCB_SIZE]; 424 + }; 425 + 426 + struct kvm_svm_nested_state_hdr { 427 + __u64 vmcb_pa; 413 428 }; 414 429 415 430 /* for KVM_CAP_NESTED_STATE */ ··· 435 420 436 421 union { 437 422 struct kvm_vmx_nested_state_hdr vmx; 423 + struct kvm_svm_nested_state_hdr svm; 438 424 439 425 /* Pad the header to 128 bytes. */ 440 426 __u8 pad[120]; ··· 448 432 */ 449 433 union { 450 434 struct kvm_vmx_nested_state_data vmx[0]; 435 + struct kvm_svm_nested_state_data svm[0]; 451 436 } data; 452 437 }; 453 438
+3
tools/arch/x86/include/uapi/asm/vmx.h
··· 150 150 { EXIT_REASON_UMWAIT, "UMWAIT" }, \ 151 151 { EXIT_REASON_TPAUSE, "TPAUSE" } 152 152 153 + #define VMX_EXIT_REASON_FLAGS \ 154 + { VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" } 155 + 153 156 #define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1 154 157 #define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2 155 158 #define VMX_ABORT_LOAD_HOST_MSR_FAIL 4
+14
tools/include/uapi/linux/kvm.h
··· 188 188 struct kvm_hyperv_exit { 189 189 #define KVM_EXIT_HYPERV_SYNIC 1 190 190 #define KVM_EXIT_HYPERV_HCALL 2 191 + #define KVM_EXIT_HYPERV_SYNDBG 3 191 192 __u32 type; 193 + __u32 pad1; 192 194 union { 193 195 struct { 194 196 __u32 msr; 197 + __u32 pad2; 195 198 __u64 control; 196 199 __u64 evt_page; 197 200 __u64 msg_page; ··· 204 201 __u64 result; 205 202 __u64 params[2]; 206 203 } hcall; 204 + struct { 205 + __u32 msr; 206 + __u32 pad2; 207 + __u64 control; 208 + __u64 status; 209 + __u64 send_page; 210 + __u64 recv_page; 211 + __u64 pending_page; 212 + } syndbg; 207 213 } u; 208 214 }; 209 215 ··· 1029 1017 #define KVM_CAP_S390_VCPU_RESETS 179 1030 1018 #define KVM_CAP_S390_PROTECTED 180 1031 1019 #define KVM_CAP_PPC_SECURE_GUEST 181 1020 + #define KVM_CAP_HALT_POLL 182 1021 + #define KVM_CAP_ASYNC_PF_INT 183 1032 1022 1033 1023 #ifdef KVM_CAP_IRQ_ROUTING 1034 1024