diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-04 11:47:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-04 11:47:12 -0400 |
commit | b05d59dfceaea72565b1648af929b037b0f96d7f (patch) | |
tree | bbe92714be468ed8783bce6ac2c305c0aedf8eb5 /arch/x86/kvm/trace.h | |
parent | daf342af2f7856fd2f5c66b9fb39a8f24986ca53 (diff) | |
parent | 820b3fcdeb80d30410f4427d2cbf9161c35fdeef (diff) |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm into next
Pull KVM updates from Paolo Bonzini:
"At over 200 commits, covering almost all supported architectures, this
was a pretty active cycle for KVM. Changes include:
- a lot of s390 changes: optimizations, support for migration, GDB
support and more
- ARM changes are pretty small: support for the PSCI 0.2 hypercall
interface on both the guest and the host (the latter acked by
Catalin)
- initial POWER8 and little-endian host support
- support for running u-boot on embedded POWER targets
- pretty large changes to MIPS too, completing the userspace
interface and improving the handling of virtualized timer hardware
- for x86, a larger set of changes is scheduled for 3.17. Still, we
have a few emulator bugfixes and support for running nested
fully-virtualized Xen guests (para-virtualized Xen guests have
always worked). And some optimizations too.
The only missing architecture here is ia64. It's not a coincidence
that support for KVM on ia64 is scheduled for removal in 3.17"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (203 commits)
KVM: add missing cleanup_srcu_struct
KVM: PPC: Book3S PR: Rework SLB switching code
KVM: PPC: Book3S PR: Use SLB entry 0
KVM: PPC: Book3S HV: Fix machine check delivery to guest
KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs
KVM: PPC: Book3S HV: Make sure we don't miss dirty pages
KVM: PPC: Book3S HV: Fix dirty map for hugepages
KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address
KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number
KVM: PPC: Book3S: Add ONE_REG register names that were missed
KVM: PPC: Add CAP to indicate hcall fixes
KVM: PPC: MPIC: Reset IRQ source private members
KVM: PPC: Graciously fail broken LE hypercalls
PPC: ePAPR: Fix hypercall on LE guest
KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler
KVM: PPC: BOOK3S: Always use the saved DAR value
PPC: KVM: Make NX bit available with magic page
KVM: PPC: Disable NX for old magic page using guests
KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest
...
Diffstat (limited to 'arch/x86/kvm/trace.h')
-rw-r--r-- | arch/x86/kvm/trace.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h index 545245d7cc63..33574c95220d 100644 --- a/arch/x86/kvm/trace.h +++ b/arch/x86/kvm/trace.h | |||
@@ -91,16 +91,21 @@ TRACE_EVENT(kvm_hv_hypercall, | |||
91 | /* | 91 | /* |
92 | * Tracepoint for PIO. | 92 | * Tracepoint for PIO. |
93 | */ | 93 | */ |
94 | |||
95 | #define KVM_PIO_IN 0 | ||
96 | #define KVM_PIO_OUT 1 | ||
97 | |||
94 | TRACE_EVENT(kvm_pio, | 98 | TRACE_EVENT(kvm_pio, |
95 | TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, | 99 | TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, |
96 | unsigned int count), | 100 | unsigned int count, void *data), |
97 | TP_ARGS(rw, port, size, count), | 101 | TP_ARGS(rw, port, size, count, data), |
98 | 102 | ||
99 | TP_STRUCT__entry( | 103 | TP_STRUCT__entry( |
100 | __field( unsigned int, rw ) | 104 | __field( unsigned int, rw ) |
101 | __field( unsigned int, port ) | 105 | __field( unsigned int, port ) |
102 | __field( unsigned int, size ) | 106 | __field( unsigned int, size ) |
103 | __field( unsigned int, count ) | 107 | __field( unsigned int, count ) |
108 | __field( unsigned int, val ) | ||
104 | ), | 109 | ), |
105 | 110 | ||
106 | TP_fast_assign( | 111 | TP_fast_assign( |
@@ -108,11 +113,18 @@ TRACE_EVENT(kvm_pio, | |||
108 | __entry->port = port; | 113 | __entry->port = port; |
109 | __entry->size = size; | 114 | __entry->size = size; |
110 | __entry->count = count; | 115 | __entry->count = count; |
116 | if (size == 1) | ||
117 | __entry->val = *(unsigned char *)data; | ||
118 | else if (size == 2) | ||
119 | __entry->val = *(unsigned short *)data; | ||
120 | else | ||
121 | __entry->val = *(unsigned int *)data; | ||
111 | ), | 122 | ), |
112 | 123 | ||
113 | TP_printk("pio_%s at 0x%x size %d count %d", | 124 | TP_printk("pio_%s at 0x%x size %d count %d val 0x%x %s", |
114 | __entry->rw ? "write" : "read", | 125 | __entry->rw ? "write" : "read", |
115 | __entry->port, __entry->size, __entry->count) | 126 | __entry->port, __entry->size, __entry->count, __entry->val, |
127 | __entry->count > 1 ? "(...)" : "") | ||
116 | ); | 128 | ); |
117 | 129 | ||
118 | /* | 130 | /* |