Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 258082
b: refs/heads/master
c: 9ddabbe
h: refs/heads/master
v: v3
  • Loading branch information
Glauber Costa authored and Avi Kivity committed Jul 12, 2011
1 parent 61bdd98 commit ad364fc
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4b6b35f55ca81d3bfdec63b0adb61798702ceb2e
refs/heads/master: 9ddabbe72e41ca6794cb4947c70929c9410e6752
34 changes: 34 additions & 0 deletions trunk/Documentation/virtual/kvm/msr.txt
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,37 @@ MSR_KVM_ASYNC_PF_EN: 0x4b564d02

Currently type 2 APF will be always delivered on the same vcpu as
type 1 was, but guest should not rely on that.

MSR_KVM_STEAL_TIME: 0x4b564d03

data: 64-byte alignment physical address of a memory area which must be
in guest RAM, plus an enable bit in bit 0. This memory is expected to
hold a copy of the following structure:

struct kvm_steal_time {
__u64 steal;
__u32 version;
__u32 flags;
__u32 pad[12];
}

whose data will be filled in by the hypervisor periodically. Only one
write, or registration, is needed for each VCPU. The interval between
updates of this structure is arbitrary and implementation-dependent.
The hypervisor may update this structure at any time it sees fit until
anything with bit0 == 0 is written to it. Guest is required to make sure
this structure is initialized to zero.

Fields have the following meanings:

version: a sequence counter. In other words, guest has to check
this field before and after grabbing time information and make
sure they are both equal and even. An odd version indicates an
in-progress update.

flags: At this point, always zero. May be used to indicate
changes in this structure in the future.

steal: the amount of time in which this vCPU did not run, in
nanoseconds. Time during which the vcpu is idle, will not be
reported as steal time.
9 changes: 9 additions & 0 deletions trunk/arch/x86/include/asm/kvm_para.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
*/
#define KVM_FEATURE_CLOCKSOURCE2 3
#define KVM_FEATURE_ASYNC_PF 4
#define KVM_FEATURE_STEAL_TIME 5

/* The last 8 bits are used to indicate how to interpret the flags field
* in pvclock structure. If no bits are set, all flags are ignored.
Expand All @@ -35,6 +36,14 @@
#define MSR_KVM_WALL_CLOCK_NEW 0x4b564d00
#define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01
#define MSR_KVM_ASYNC_PF_EN 0x4b564d02
#define MSR_KVM_STEAL_TIME 0x4b564d03

struct kvm_steal_time {
__u64 steal;
__u32 version;
__u32 flags;
__u32 pad[12];
};

#define KVM_MAX_MMU_OP_BATCH 32

Expand Down

0 comments on commit ad364fc

Please sign in to comment.