Re: [kvm-devel] Use virtual cpu accounting if available for guest times.

Hollis Blanchard
2007-10-19T16:57:36Z

On Thu, 2007-10-18 at 14:39 +0200, Christian Borntraeger wrote:
> Avi,
>
> ppc and s390 offer the possibility to track process times precisely
> by looking at cpu timer on every context switch, irq, softirq etc.
> We can use that infrastructure as well for guest time accounting.
> We need to account the used time before we change the state.
> This patch adds a call to account_system_vtime to kvm_guest_enter
> and kvm_guest exit. If CONFIG_VIRT_CPU_ACCOUNTING is not set,
> account_system_vtime is defined in hardirq.h as an empty function,
> which means this patch does not change the behaviour on other
> platforms.
>
> I compile tested this patch on x86 and function tested the patch on
> s390.
>
> Avi, please apply.
>
>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>
> ---
> drivers/kvm/kvm.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: kvm/drivers/kvm/kvm.h
> ===================================================================
> --- kvm.orig/drivers/kvm/kvm.h
> +++ kvm/drivers/kvm/kvm.h
> @@ -7,6 +7,7 @@
> */
>
> #include <linux/types.h>
> +#include <linux/hardirq.h>
> #include <linux/list.h>
> #include <linux/mutex.h>
> #include <linux/spinlock.h>
> @@ -669,11 +670,13 @@ __init void kvm_arch_init(void);
>
> static inline void kvm_guest_enter(void)
> {
> + account_system_vtime(current);
> current->flags |= PF_VCPU;
> }
>
> static inline void kvm_guest_exit(void)
> {
> + account_system_vtime(current);
> current->flags &= ~PF_VCPU;
> }

I don't understand. Should kvm_guest_exit() be calling
account_user_vtime() (instead of account_system_vtime())?

--
Hollis Blanchard
IBM Linux Technology Center