diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 12:30:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 12:30:33 -0400 |
commit | ecefbd94b834fa32559d854646d777c56749ef1c (patch) | |
tree | ca8958900ad9e208a8e5fb7704f1b66dc76131b4 /arch/s390/kvm/priv.c | |
parent | ce57e981f2b996aaca2031003b3f866368307766 (diff) | |
parent | 3d11df7abbff013b811d5615320580cd5d9d7d31 (diff) |
Merge tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Avi Kivity:
"Highlights of the changes for this release include support for vfio
level triggered interrupts, improved big real mode support on older
Intels, a streamlines guest page table walker, guest APIC speedups,
PIO optimizations, better overcommit handling, and read-only memory."
* tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (138 commits)
KVM: s390: Fix vcpu_load handling in interrupt code
KVM: x86: Fix guest debug across vcpu INIT reset
KVM: Add resampling irqfds for level triggered interrupts
KVM: optimize apic interrupt delivery
KVM: MMU: Eliminate pointless temporary 'ac'
KVM: MMU: Avoid access/dirty update loop if all is well
KVM: MMU: Eliminate eperm temporary
KVM: MMU: Optimize is_last_gpte()
KVM: MMU: Simplify walk_addr_generic() loop
KVM: MMU: Optimize pte permission checks
KVM: MMU: Update accessed and dirty bits after guest pagetable walk
KVM: MMU: Move gpte_access() out of paging_tmpl.h
KVM: MMU: Optimize gpte_access() slightly
KVM: MMU: Push clean gpte write protection out of gpte_access()
KVM: clarify kvmclock documentation
KVM: make processes waiting on vcpu mutex killable
KVM: SVM: Make use of asm.h
KVM: VMX: Make use of asm.h
KVM: VMX: Make lto-friendly
KVM: x86: lapic: Clean up find_highest_vector() and count_vectors()
...
Conflicts:
arch/s390/include/asm/processor.h
arch/x86/kvm/i8259.c
Diffstat (limited to 'arch/s390/kvm/priv.c')
-rw-r--r-- | arch/s390/kvm/priv.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index 310be61bead7..d768906f15c8 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <asm/sysinfo.h> | 20 | #include <asm/sysinfo.h> |
21 | #include "gaccess.h" | 21 | #include "gaccess.h" |
22 | #include "kvm-s390.h" | 22 | #include "kvm-s390.h" |
23 | #include "trace.h" | ||
23 | 24 | ||
24 | static int handle_set_prefix(struct kvm_vcpu *vcpu) | 25 | static int handle_set_prefix(struct kvm_vcpu *vcpu) |
25 | { | 26 | { |
@@ -59,6 +60,7 @@ static int handle_set_prefix(struct kvm_vcpu *vcpu) | |||
59 | kvm_s390_set_prefix(vcpu, address); | 60 | kvm_s390_set_prefix(vcpu, address); |
60 | 61 | ||
61 | VCPU_EVENT(vcpu, 5, "setting prefix to %x", address); | 62 | VCPU_EVENT(vcpu, 5, "setting prefix to %x", address); |
63 | trace_kvm_s390_handle_prefix(vcpu, 1, address); | ||
62 | out: | 64 | out: |
63 | return 0; | 65 | return 0; |
64 | } | 66 | } |
@@ -91,6 +93,7 @@ static int handle_store_prefix(struct kvm_vcpu *vcpu) | |||
91 | } | 93 | } |
92 | 94 | ||
93 | VCPU_EVENT(vcpu, 5, "storing prefix to %x", address); | 95 | VCPU_EVENT(vcpu, 5, "storing prefix to %x", address); |
96 | trace_kvm_s390_handle_prefix(vcpu, 0, address); | ||
94 | out: | 97 | out: |
95 | return 0; | 98 | return 0; |
96 | } | 99 | } |
@@ -119,6 +122,7 @@ static int handle_store_cpu_address(struct kvm_vcpu *vcpu) | |||
119 | } | 122 | } |
120 | 123 | ||
121 | VCPU_EVENT(vcpu, 5, "storing cpu address to %llx", useraddr); | 124 | VCPU_EVENT(vcpu, 5, "storing cpu address to %llx", useraddr); |
125 | trace_kvm_s390_handle_stap(vcpu, useraddr); | ||
122 | out: | 126 | out: |
123 | return 0; | 127 | return 0; |
124 | } | 128 | } |
@@ -164,9 +168,11 @@ static int handle_stfl(struct kvm_vcpu *vcpu) | |||
164 | &facility_list, sizeof(facility_list)); | 168 | &facility_list, sizeof(facility_list)); |
165 | if (rc == -EFAULT) | 169 | if (rc == -EFAULT) |
166 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); | 170 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); |
167 | else | 171 | else { |
168 | VCPU_EVENT(vcpu, 5, "store facility list value %x", | 172 | VCPU_EVENT(vcpu, 5, "store facility list value %x", |
169 | facility_list); | 173 | facility_list); |
174 | trace_kvm_s390_handle_stfl(vcpu, facility_list); | ||
175 | } | ||
170 | return 0; | 176 | return 0; |
171 | } | 177 | } |
172 | 178 | ||
@@ -278,6 +284,7 @@ static int handle_stsi(struct kvm_vcpu *vcpu) | |||
278 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); | 284 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); |
279 | goto out_mem; | 285 | goto out_mem; |
280 | } | 286 | } |
287 | trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2); | ||
281 | free_page(mem); | 288 | free_page(mem); |
282 | vcpu->arch.sie_block->gpsw.mask &= ~(3ul << 44); | 289 | vcpu->arch.sie_block->gpsw.mask &= ~(3ul << 44); |
283 | vcpu->run->s.regs.gprs[0] = 0; | 290 | vcpu->run->s.regs.gprs[0] = 0; |