KVM: Steal time implementation
authorGlauber Costa <glommer@redhat.com>
Mon, 11 Jul 2011 19:28:14 +0000 (15:28 -0400)
committerAvi Kivity <avi@redhat.com>
Thu, 14 Jul 2011 09:59:14 +0000 (12:59 +0300)
commitc9aaa8957f203bd6df83b002fb40b98390bed078
tree96930ff2cbf73f6b0a3f4973e3933d036af13544
parent9ddabbe72e41ca6794cb4947c70929c9410e6752
KVM: Steal time implementation

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, while the vcpu had meaningful work to do - halt
time does not count.

This information is acquired through the run_delay field of
delayacct/schedstats infrastructure, that counts time spent in a
runqueue but not running.

Steal time is a per-cpu information, so the traditional MSR-based
infrastructure is used. A new msr, KVM_MSR_STEAL_TIME, holds the
memory area address containing information about steal time

This patch contains the hypervisor part of the steal time infrasructure,
and can be backported independently of the guest portion.

[avi, yongjie: export delayacct_on, to avoid build failures in some configs]

Signed-off-by: Glauber Costa <glommer@redhat.com>
Tested-by: Eric B Munson <emunson@mgebm.net>
CC: Rik van Riel <riel@redhat.com>
CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Yongjie Ren <yongjie.ren@intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/include/asm/kvm_para.h
arch/x86/kvm/Kconfig
arch/x86/kvm/x86.c
include/linux/kvm_host.h
kernel/delayacct.c