* Use virtual cpu accounting if available for guest times.
[not found] ` <11926264852739-git-send-email-Laurent.Vivier-6ktuUTfB/bM@public.gmane.org>
@ 2007-10-18 12:39 ` Christian Borntraeger
[not found] ` <200710181439.10390.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-10-19 16:57 ` [kvm-devel] " Hollis Blanchard
0 siblings, 2 replies; 11+ messages in thread
From: Christian Borntraeger @ 2007-10-18 12:39 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel, Laurent Vivier, linux-kernel-u79uwXL29TY76Z2rM5mHXA
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-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
---
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;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
^ permalink raw reply [flat|nested] 11+ messages in thread[parent not found: <200710181439.10390.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>]
* Re: Use virtual cpu accounting if available for guest times.
[not found] ` <200710181439.10390.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
@ 2007-10-18 12:41 ` Avi Kivity
0 siblings, 0 replies; 11+ messages in thread
From: Avi Kivity @ 2007-10-18 12:41 UTC (permalink / raw)
To: Christian Borntraeger
Cc: kvm-devel, Laurent Vivier, linux-kernel-u79uwXL29TY76Z2rM5mHXA
Christian Borntraeger wrote:
> 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.
>
>
Done. Thanks!
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [kvm-devel] Use virtual cpu accounting if available for guest times.
2007-10-18 12:39 ` Use virtual cpu accounting if available for guest times Christian Borntraeger
[not found] ` <200710181439.10390.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
@ 2007-10-19 16:57 ` Hollis Blanchard
2007-10-19 17:18 ` Hollis Blanchard
1 sibling, 1 reply; 11+ messages in thread
From: Hollis Blanchard @ 2007-10-19 16:57 UTC (permalink / raw)
To: Christian Borntraeger; +Cc: Avi Kivity, kvm-devel, Laurent Vivier, linux-kernel
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
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Use virtual cpu accounting if available for guest times.
2007-10-19 16:57 ` [kvm-devel] " Hollis Blanchard
@ 2007-10-19 17:18 ` Hollis Blanchard
0 siblings, 0 replies; 11+ messages in thread
From: Hollis Blanchard @ 2007-10-19 17:18 UTC (permalink / raw)
To: Christian Borntraeger
Cc: kvm-devel, Laurent Vivier, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Avi Kivity
On Fri, 2007-10-19 at 11:57 -0500, Hollis Blanchard wrote:
> > @@ -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())?
Never mind; the tree I was looking at didn't have the
account_guest_time() stuff in account_system_time().
--
Hollis Blanchard
IBM Linux Technology Center
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] move kvm_guest_exit() after local_irq_enable()
[not found] <47135D1B.1060004@bull.net>
[not found] ` <11926264852739-git-send-email-Laurent.Vivier@bull.net>
@ 2007-10-18 13:19 ` Laurent Vivier
[not found] ` <11927135412363-git-send-email-Laurent.Vivier-6ktuUTfB/bM@public.gmane.org>
1 sibling, 1 reply; 11+ messages in thread
From: Laurent Vivier @ 2007-10-18 13:19 UTC (permalink / raw)
To: mingo; +Cc: linux-kernel, avi, borntraeger, kvm-devel, Laurent Vivier
According comments from Avi, we can clear PF_VCPU in kvm_guest_exit if we move
it after local_irq_enable().
http://lkml.org/lkml/2007/10/15/114
To simplify s390 port, we don't clear it in account_system_time().
http://lkml.org/lkml/2007/10/15/183
---
drivers/kvm/kvm_main.c | 5 ++++-
kernel/sched.c | 1 -
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 87275be..b9cd1f0 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -2194,12 +2194,15 @@ again:
kvm_x86_ops->run(vcpu, kvm_run);
- kvm_guest_exit();
vcpu->guest_mode = 0;
local_irq_enable();
++vcpu->stat.exits;
+ barrier();
+
+ kvm_guest_exit();
+
preempt_enable();
/*
diff --git a/kernel/sched.c b/kernel/sched.c
index b27ab3e..57fac22 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3315,7 +3315,6 @@ void account_system_time(struct task_struct *p, int hardirq_offset,
#ifdef CONFIG_GUEST_ACCOUNTING
if (p->flags & PF_VCPU) {
account_guest_time(p, cputime);
- p->flags &= ~PF_VCPU;
return;
}
#endif
--
1.5.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-10-22 9:10 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <47135D1B.1060004@bull.net>
[not found] ` <11926264852739-git-send-email-Laurent.Vivier@bull.net>
[not found] ` <11926264852739-git-send-email-Laurent.Vivier-6ktuUTfB/bM@public.gmane.org>
2007-10-18 12:39 ` Use virtual cpu accounting if available for guest times Christian Borntraeger
[not found] ` <200710181439.10390.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-10-18 12:41 ` Avi Kivity
2007-10-19 16:57 ` [kvm-devel] " Hollis Blanchard
2007-10-19 17:18 ` Hollis Blanchard
2007-10-18 13:19 ` [PATCH] move kvm_guest_exit() after local_irq_enable() Laurent Vivier
[not found] ` <11927135412363-git-send-email-Laurent.Vivier-6ktuUTfB/bM@public.gmane.org>
2007-10-18 13:32 ` Avi Kivity
2007-10-18 13:49 ` [kvm-devel] " Laurent Vivier
2007-10-22 8:26 ` Ingo Molnar
[not found] ` <20071022082604.GA28528-X9Un+BFzKDI@public.gmane.org>
2007-10-22 8:51 ` Avi Kivity
[not found] ` <471C647A.50908-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 8:57 ` Ingo Molnar
[not found] ` <20071022085703.GA2781-X9Un+BFzKDI@public.gmane.org>
2007-10-22 9:10 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox