History

Merge tag 'kvm-s390-20140130' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

Two new features are added by this patch set: - The floating interrupt controller (flic) that allows us to inject, clear and inspect non-vcpu local interrupts. This also gives us an opportunity to fix deficiencies in our existing interrupt definitions. - Support for asynchronous page faults via the pfault mechanism. Testing show significant guest performance improvements under host swap.

Paolo Bonzini committed 12 years ago

Commit f244d912 parents 4f34d68 536336c20 files · +822 −104Browse files

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

Unified · Split

include/uapi/linux/kvm.h+66−0
@@ -413,6 +413,8 @@ struct kvm_s390_psw { · 412 unmodified lines
413413 #define KVM_S390_PROGRAM_INT 0xfffe0001u
414414 #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
415415 #define KVM_S390_RESTART 0xfffe0003u
416+#define KVM_S390_INT_PFAULT_INIT 0xfffe0004u
417+#define KVM_S390_INT_PFAULT_DONE 0xfffe0005u
416418 #define KVM_S390_MCHK 0xfffe1000u
417419 #define KVM_S390_INT_VIRTIO 0xffff2603u
418420 #define KVM_S390_INT_SERVICE 0xffff2401u
@@ -434,6 +436,69 @@ struct kvm_s390_interrupt { · 15 unmodified lines
434436 __u64 parm64;
435437 };
436438
439+struct kvm_s390_io_info {
440+ __u16 subchannel_id;
441+ __u16 subchannel_nr;
442+ __u32 io_int_parm;
443+ __u32 io_int_word;
444+};
445+
446+struct kvm_s390_ext_info {
447+ __u32 ext_params;
448+ __u32 pad;
449+ __u64 ext_params2;
450+};
451+
452+struct 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+
467+struct kvm_s390_prefix_info {
468+ __u32 address;
469+};
470+
471+struct kvm_s390_extcall_info {
472+ __u16 code;
473+};
474+
475+struct kvm_s390_emerg_info {
476+ __u16 code;
477+};
478+
479+struct 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+
488+struct 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+
437502 /* for KVM_SET_GUEST_DEBUG */
438503
439504 #define KVM_GUESTDBG_ENABLE 0x00000001
@@ -855,6 +920,7 @@ struct kvm_device_attr { · 415 unmodified lines
855920 #define KVM_DEV_VFIO_GROUP_ADD 1
856921 #define KVM_DEV_VFIO_GROUP_DEL 2
857922 #define KVM_DEV_TYPE_ARM_VGIC_V2 5
923+#define KVM_DEV_TYPE_FLIC 6
858924
859925 /*
860926 * ioctls for VM fds