History

Merge tag 'kvm-3.15-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm updates from Paolo Bonzini: "PPC and ARM do not have much going on this time. Most of the cool stuff, instead, is in s390 and (after a few releases) x86. ARM has some caching fixes and PPC has transactional memory support in guests. MIPS has some fixes, with more probably coming in 3.16 as QEMU will soon get support for MIPS KVM. For x86 there are optimizations for debug registers, which trigger on some Windows games, and other important fixes for Windows guests. We now expose to the guest Broadwell instruction set extensions and also Intel MPX. There's also a fix/workaround for OS X guests, nested virtualization features (preemption timer), and a couple kvmclock refinements. For s390, the main news is asynchronous page faults, together with improvements to IRQs (floating irqs and adapter irqs) that speed up virtio devices" * tag 'kvm-3.15-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (96 commits) KVM: PPC: Book3S HV: Save/restore host PMU registers that are new in POWER8 KVM: PPC: Book3S HV: Fix decrementer timeouts with non-zero TB offset KVM: PPC: Book3S HV: Don't use kvm_memslots() in real mode KVM: PPC: Book3S HV: Return ENODEV error rather than EIO KVM: PPC: Book3S: Trim top 4 bits of physical address in RTAS code KVM: PPC: Book3S HV: Add get/set_one_reg for new TM state KVM: PPC: Book3S HV: Add transactional memory support KVM: Specify byte order for KVM_EXIT_MMIO KVM: vmx: fix MPX detection KVM: PPC: Book3S HV: Fix KVM hang with CONFIG_KVM_XICS=n KVM: PPC: Book3S: Introduce hypervisor call H_GET_TCE KVM: PPC: Book3S HV: Fix incorrect userspace exit on ioeventfd write KVM: s390: clear local interrupts at cpu initial reset KVM: s390: Fix possible memory leak in SIGP functions KVM: s390: fix calculation of idle_mask array size KVM: s390: randomize sca address KVM: ioapic: reinject pending interrupts on KVM_SET_IRQCHIP KVM: Bump KVM_MAX_IRQ_ROUTES for s390 KVM: s390: irq routing for adapter interrupts. KVM: s390: adapter interrupt sources ...

Linus Torvalds committed 12 years ago

Commit 7cbb39d2 parents 64056a9 7227fc074 files · +3265 −838Browse files

Showing the changes to include/uapi/linux (1 of 74 files). Show all

Unified · Split

include/uapi/linux/kvm.h+83−0
@@ -413,6 +413,8 @@ struct kvm_s390_psw { · 412 unmodified lines
413#define KVM_S390_PROGRAM_INT 0xfffe0001u413#define KVM_S390_PROGRAM_INT 0xfffe0001u
414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
415#define KVM_S390_RESTART 0xfffe0003u415#define KVM_S390_RESTART 0xfffe0003u
416#define KVM_S390_INT_PFAULT_INIT 0xfffe0004u
417#define KVM_S390_INT_PFAULT_DONE 0xfffe0005u
416#define KVM_S390_MCHK 0xfffe1000u418#define KVM_S390_MCHK 0xfffe1000u
417#define KVM_S390_INT_VIRTIO 0xffff2603u419#define KVM_S390_INT_VIRTIO 0xffff2603u
418#define KVM_S390_INT_SERVICE 0xffff2401u420#define KVM_S390_INT_SERVICE 0xffff2401u
@@ -434,6 +436,69 @@ struct kvm_s390_interrupt { · 15 unmodified lines
434 __u64 parm64;436 __u64 parm64;
435};437};
436 438
439struct kvm_s390_io_info {
440 __u16 subchannel_id;
441 __u16 subchannel_nr;
442 __u32 io_int_parm;
443 __u32 io_int_word;
444};
445
446struct kvm_s390_ext_info {
447 __u32 ext_params;
448 __u32 pad;
449 __u64 ext_params2;
450};
451
452struct kvm_s390_pgm_info {
453 __u64 trans_exc_code;
454 __u64 mon_code;
455 __u64 per_address;
456 __u32 data_exc_code;
457 __u16 code;
458 __u16 mon_class_nr;
459 __u8 per_code;
460 __u8 per_atmid;
461 __u8 exc_access_id;
462 __u8 per_access_id;
463 __u8 op_access_id;
464 __u8 pad[3];
465};
466
467struct kvm_s390_prefix_info {
468 __u32 address;
469};
470
471struct kvm_s390_extcall_info {
472 __u16 code;
473};
474
475struct kvm_s390_emerg_info {
476 __u16 code;
477};
478
479struct kvm_s390_mchk_info {
480 __u64 cr14;
481 __u64 mcic;
482 __u64 failing_storage_address;
483 __u32 ext_damage_code;
484 __u32 pad;
485 __u8 fixed_logout[16];
486};
487
488struct kvm_s390_irq {
489 __u64 type;
490 union {
491 struct kvm_s390_io_info io;
492 struct kvm_s390_ext_info ext;
493 struct kvm_s390_pgm_info pgm;
494 struct kvm_s390_emerg_info emerg;
495 struct kvm_s390_extcall_info extcall;
496 struct kvm_s390_prefix_info prefix;
497 struct kvm_s390_mchk_info mchk;
498 char reserved[64];
499 } u;
500};
501
437/* for KVM_SET_GUEST_DEBUG */502/* for KVM_SET_GUEST_DEBUG */
438 503
439#define KVM_GUESTDBG_ENABLE 0x00000001504#define KVM_GUESTDBG_ENABLE 0x00000001
@@ -675,6 +740,9 @@ struct kvm_ppc_smmu_info { · 235 unmodified lines
675#define KVM_CAP_SPAPR_MULTITCE 94740#define KVM_CAP_SPAPR_MULTITCE 94
676#define KVM_CAP_EXT_EMUL_CPUID 95741#define KVM_CAP_EXT_EMUL_CPUID 95
677#define KVM_CAP_HYPERV_TIME 96742#define KVM_CAP_HYPERV_TIME 96
743#define KVM_CAP_IOAPIC_POLARITY_IGNORED 97
744#define KVM_CAP_ENABLE_CAP_VM 98
745#define KVM_CAP_S390_IRQCHIP 99
678 746
679#ifdef KVM_CAP_IRQ_ROUTING747#ifdef KVM_CAP_IRQ_ROUTING
680 748
@@ -690,9 +758,18 @@ struct kvm_irq_routing_msi { · 9 unmodified lines
690 __u32 pad;758 __u32 pad;
691};759};
692 760
761struct kvm_irq_routing_s390_adapter {
762 __u64 ind_addr;
763 __u64 summary_addr;
764 __u64 ind_offset;
765 __u32 summary_offset;
766 __u32 adapter_id;
767};
768
693/* gsi routing entry types */769/* gsi routing entry types */
694#define KVM_IRQ_ROUTING_IRQCHIP 1770#define KVM_IRQ_ROUTING_IRQCHIP 1
695#define KVM_IRQ_ROUTING_MSI 2771#define KVM_IRQ_ROUTING_MSI 2
772#define KVM_IRQ_ROUTING_S390_ADAPTER 3
696 773
697struct kvm_irq_routing_entry {774struct kvm_irq_routing_entry {
698 __u32 gsi;775 __u32 gsi;
@@ -702,6 +779,7 @@ struct kvm_irq_routing_entry { · 3 unmodified lines
702 union {779 union {
703 struct kvm_irq_routing_irqchip irqchip;780 struct kvm_irq_routing_irqchip irqchip;
704 struct kvm_irq_routing_msi msi;781 struct kvm_irq_routing_msi msi;
782 struct kvm_irq_routing_s390_adapter adapter;
705 __u32 pad[8];783 __u32 pad[8];
706 } u;784 } u;
707};785};
@@ -855,6 +933,7 @@ struct kvm_device_attr { · 147 unmodified lines
855#define KVM_DEV_VFIO_GROUP_ADD 1933#define KVM_DEV_VFIO_GROUP_ADD 1
856#define KVM_DEV_VFIO_GROUP_DEL 2934#define KVM_DEV_VFIO_GROUP_DEL 2
857#define KVM_DEV_TYPE_ARM_VGIC_V2 5935#define KVM_DEV_TYPE_ARM_VGIC_V2 5
936#define KVM_DEV_TYPE_FLIC 6
858 937
859/*938/*
860 * ioctls for VM fds939 * ioctls for VM fds
@@ -1009,6 +1088,10 @@ struct kvm_s390_ucas_mapping { · 148 unmodified lines
1009/* Available with KVM_CAP_DEBUGREGS */1088/* Available with KVM_CAP_DEBUGREGS */
1010#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)1089#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)
1011#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)1090#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)
1091/*
1092 * vcpu version available with KVM_ENABLE_CAP
1093 * vm version available with KVM_CAP_ENABLE_CAP_VM
1094 */
1012#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)1095#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)
1013/* Available with KVM_CAP_XSAVE */1096/* Available with KVM_CAP_XSAVE */
1014#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave)1097#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave)