History

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

KVM: s390: fixes and features for kvm/next (3.20) 1. Generic - sparse warning (make function static) - optimize locking - bugfixes for interrupt injection - fix MVPG addressing modes 2. hrtimer/wakeup fun A recent change can cause KVM hangs if adjtime is used in the host. The hrtimer might wake up too early or too late. Too early is fatal as vcpu_block will see that the wakeup condition is not met and sleep again. This CPU might never wake up again. This series addresses this problem. adjclock slowing down the host clock will result in too late wakeups. This will require more work. In addition to that we also change the hrtimer from REALTIME to MONOTONIC to avoid similar problems with timedatectl set-time. 3. sigp rework We will move all "slow" sigps to QEMU (protected with a capability that can be enabled) to avoid several races between concurrent SIGP orders. 4. Optimize the shadow page table Provide an interface to announce the maximum guest size. The kernel will use that to make the pagetable 2,3,4 (or theoretically) 5 levels. 5. Provide an interface to set the guest TOD We now use two vm attributes instead of two oneregs, as oneregs are vcpu ioctl and we don't want to call them from other threads. 6. Protected key functions The real HMC allows to enable/disable protected key CPACF functions. Lets provide an implementation + an interface for QEMU to activate this the protected key instructions.

Paolo Bonzini committed 11 years ago

Commit 8fff5e32 parents 1c6007d 0eb135f18 files · +656 −198Browse files

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

Unified · Split

include/uapi/linux/kvm.h+7−0
@@ -491,6 +491,11 @@ struct kvm_s390_emerg_info { · 490 unmodified lines
491491 __u16 code;
492492 };
493493
494+#define KVM_S390_STOP_FLAG_STORE_STATUS 0x01
495+struct kvm_s390_stop_info {
496+ __u32 flags;
497+};
498+
494499 struct kvm_s390_mchk_info {
495500 __u64 cr14;
496501 __u64 mcic;
@@ -509,6 +514,7 @@ struct kvm_s390_irq { · 12 unmodified lines
509514 struct kvm_s390_emerg_info emerg;
510515 struct kvm_s390_extcall_info extcall;
511516 struct kvm_s390_prefix_info prefix;
517+ struct kvm_s390_stop_info stop;
512518 struct kvm_s390_mchk_info mchk;
513519 char reserved[64];
514520 } u;
@@ -753,6 +759,7 @@ struct kvm_ppc_smmu_info { · 238 unmodified lines
753759 #define KVM_CAP_PPC_FIXUP_HCALL 103
754760 #define KVM_CAP_PPC_ENABLE_HCALL 104
755761 #define KVM_CAP_CHECK_EXTENSION_VM 105
762+#define KVM_CAP_S390_USER_SIGP 106
756763
757764 #ifdef KVM_CAP_IRQ_ROUTING
758765