aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual
diff options
context:
space:
mode:
authorGlauber Costa <glommer@redhat.com>2011-07-11 15:28:13 -0400
committerAvi Kivity <avi@redhat.com>2011-07-12 06:17:03 -0400
commit9ddabbe72e41ca6794cb4947c70929c9410e6752 (patch)
treec1b4b5dc3f326fcac560211283a65bb626277e7c /Documentation/virtual
parent4b6b35f55ca81d3bfdec63b0adb61798702ceb2e (diff)
KVM: KVM Steal time guest/host interface
To implement steal time, we need the hypervisor to pass the guest information about how much time was spent running other processes outside the VM. This is per-vcpu, and using the kvmclock structure for that is an abuse we decided not to make. In this patchset, I am introducing a new msr, KVM_MSR_STEAL_TIME, that holds the memory area address containing information about steal time This patch contains the headers for it. I am keeping it separate to facilitate backports to people who wants to backport the kernel part but not the hypervisor, or the other way around. Signed-off-by: Glauber Costa <glommer@redhat.com> Acked-by: Rik van Riel <riel@redhat.com> Tested-by: Eric B Munson <emunson@mgebm.net> CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> CC: Peter Zijlstra <peterz@infradead.org> CC: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'Documentation/virtual')
-rw-r--r--Documentation/virtual/kvm/msr.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/msr.txt b/Documentation/virtual/kvm/msr.txt
index d079aed27e03..50317809113d 100644
--- a/Documentation/virtual/kvm/msr.txt
+++ b/Documentation/virtual/kvm/msr.txt
@@ -185,3 +185,37 @@ MSR_KVM_ASYNC_PF_EN: 0x4b564d02
185 185
186 Currently type 2 APF will be always delivered on the same vcpu as 186 Currently type 2 APF will be always delivered on the same vcpu as
187 type 1 was, but guest should not rely on that. 187 type 1 was, but guest should not rely on that.
188
189MSR_KVM_STEAL_TIME: 0x4b564d03
190
191 data: 64-byte alignment physical address of a memory area which must be
192 in guest RAM, plus an enable bit in bit 0. This memory is expected to
193 hold a copy of the following structure:
194
195 struct kvm_steal_time {
196 __u64 steal;
197 __u32 version;
198 __u32 flags;
199 __u32 pad[12];
200 }
201
202 whose data will be filled in by the hypervisor periodically. Only one
203 write, or registration, is needed for each VCPU. The interval between
204 updates of this structure is arbitrary and implementation-dependent.
205 The hypervisor may update this structure at any time it sees fit until
206 anything with bit0 == 0 is written to it. Guest is required to make sure
207 this structure is initialized to zero.
208
209 Fields have the following meanings:
210
211 version: a sequence counter. In other words, guest has to check
212 this field before and after grabbing time information and make
213 sure they are both equal and even. An odd version indicates an
214 in-progress update.
215
216 flags: At this point, always zero. May be used to indicate
217 changes in this structure in the future.
218
219 steal: the amount of time in which this vCPU did not run, in
220 nanoseconds. Time during which the vcpu is idle, will not be
221 reported as steal time.