aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2014-10-02 07:44:45 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2014-10-02 07:44:45 -0400
commita74b7d5514d61bca6aee32f60a79dacf1d2b3cac (patch)
treea7e08d055f37627bf801b3cb1f510099fda54f7b
parentcec26bc3c125b5dd12a02f04133cd91eae3f1622 (diff)
parentce2e4f0b75a567d25375b52476662c724304e476 (diff)
Merge tag 'kvm-s390-next-20141001' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-next
KVM: s390: Small enhancements for 3.18 (next) Provide TOD CLOCK steering to the guest and add cpu wakeup counter.
-rw-r--r--arch/s390/include/asm/kvm_host.h1
-rw-r--r--arch/s390/kvm/interrupt.c1
-rw-r--r--arch/s390/kvm/kvm-s390.c3
3 files changed, 4 insertions, 1 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index 1a6f6fd8bd34..2175f911a73a 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -192,6 +192,7 @@ struct kvm_vcpu_stat {
192 u32 exit_stop_request; 192 u32 exit_stop_request;
193 u32 exit_validity; 193 u32 exit_validity;
194 u32 exit_instruction; 194 u32 exit_instruction;
195 u32 halt_wakeup;
195 u32 instruction_lctl; 196 u32 instruction_lctl;
196 u32 instruction_lctlg; 197 u32 instruction_lctlg;
197 u32 instruction_stctl; 198 u32 instruction_stctl;
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 4cad00adef93..a39838457f01 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -626,6 +626,7 @@ void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu)
626 */ 626 */
627 vcpu->preempted = true; 627 vcpu->preempted = true;
628 wake_up_interruptible(&vcpu->wq); 628 wake_up_interruptible(&vcpu->wq);
629 vcpu->stat.halt_wakeup++;
629 } 630 }
630} 631}
631 632
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 56a411c0245a..55aade49b6d1 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -50,6 +50,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
50 { "exit_instruction", VCPU_STAT(exit_instruction) }, 50 { "exit_instruction", VCPU_STAT(exit_instruction) },
51 { "exit_program_interruption", VCPU_STAT(exit_program_interruption) }, 51 { "exit_program_interruption", VCPU_STAT(exit_program_interruption) },
52 { "exit_instr_and_program_int", VCPU_STAT(exit_instr_and_program) }, 52 { "exit_instr_and_program_int", VCPU_STAT(exit_instr_and_program) },
53 { "halt_wakeup", VCPU_STAT(halt_wakeup) },
53 { "instruction_lctlg", VCPU_STAT(instruction_lctlg) }, 54 { "instruction_lctlg", VCPU_STAT(instruction_lctlg) },
54 { "instruction_lctl", VCPU_STAT(instruction_lctl) }, 55 { "instruction_lctl", VCPU_STAT(instruction_lctl) },
55 { "instruction_stctl", VCPU_STAT(instruction_stctl) }, 56 { "instruction_stctl", VCPU_STAT(instruction_stctl) },
@@ -1786,7 +1787,7 @@ static int __init kvm_s390_init(void)
1786 return -ENOMEM; 1787 return -ENOMEM;
1787 } 1788 }
1788 memcpy(vfacilities, S390_lowcore.stfle_fac_list, 16); 1789 memcpy(vfacilities, S390_lowcore.stfle_fac_list, 16);
1789 vfacilities[0] &= 0xff82fff3f4fc2000UL; 1790 vfacilities[0] &= 0xff82fffbf47c2000UL;
1790 vfacilities[1] &= 0x005c000000000000UL; 1791 vfacilities[1] &= 0x005c000000000000UL;
1791 return 0; 1792 return 0;
1792} 1793}