From: Rik van Riel <riel@redhat.com>
To: Glauber Costa <glommer@redhat.com>
Cc: kvm@vger.kernel.org, avi@redhat.com, zamsden@redhat.com,
mtosatti@redhat.com
Subject: Re: [RFC 5/7] kvm steal time implementation
Date: Thu, 26 Aug 2010 18:13:07 -0400 [thread overview]
Message-ID: <4C76E6F3.5020402@redhat.com> (raw)
In-Reply-To: <1282772597-4183-6-git-send-email-glommer@redhat.com>
On 08/25/2010 05:43 PM, Glauber Costa wrote:
> This is the proposed kvm-side steal time implementation.
> It is migration safe, as it checks flags at every read.
>
> Signed-off-by: Glauber Costa<glommer@redhat.com>
> ---
> arch/x86/kernel/kvmclock.c | 35 +++++++++++++++++++++++++++++++++++
> 1 files changed, 35 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> index eb9b76c..a1f4852 100644
> --- a/arch/x86/kernel/kvmclock.c
> +++ b/arch/x86/kernel/kvmclock.c
> @@ -18,6 +18,8 @@
>
> #include<linux/clocksource.h>
> #include<linux/kvm_para.h>
> +#include<linux/kernel_stat.h>
> +#include<linux/sched.h>
> #include<asm/pvclock.h>
> #include<asm/msr.h>
> #include<asm/apic.h>
> @@ -41,6 +43,7 @@ early_param("no-kvmclock", parse_no_kvmclock);
>
> /* The hypervisor will put information about time periodically here */
> static DEFINE_PER_CPU_SHARED_ALIGNED(struct pvclock_vcpu_time_info, hv_clock);
> +static DEFINE_PER_CPU(u64, steal_info);
> static struct pvclock_wall_clock wall_clock;
>
> /*
> @@ -82,6 +85,32 @@ static cycle_t kvm_clock_read(void)
> return ret;
> }
>
> +static DEFINE_PER_CPU(u64, steal_info);
> +
> +cputime_t kvm_get_steal_time(void)
> +{
> + u64 delta = 0;
> + u64 *last_steal_info, this_steal_info;
> + struct pvclock_vcpu_time_info *src;
> +
> + src =&get_cpu_var(hv_clock);
> + if (!(src->flags& PVCLOCK_STEAL_BIT))
> + goto out;
> +
> + this_steal_info = src->steal_time;
> + put_cpu_var(hv_clock);
> +
> + last_steal_info =&get_cpu_var(steal_info);
> +
> + delta = this_steal_info - *last_steal_info;
> +
> + *last_steal_info = this_steal_info;
> + put_cpu_var(steal_info);
> +
> +out:
> + return msecs_to_cputime(delta);
> +}
Can this be changed to properly deal with overflow in
src->steal_time, the same way we deal with (eg jiffie)
overflow elsewhere in the kernel?
--
All rights reversed
next prev parent reply other threads:[~2010-08-26 22:13 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-25 21:43 [RFC 0/7] KVM steal time implementation Glauber Costa
2010-08-25 21:43 ` [RFC 1/7] Implement getnsboottime kernel API Glauber Costa
2010-08-25 21:43 ` [RFC 2/7] change headers preparing for steal time Glauber Costa
2010-08-25 21:43 ` [RFC 3/7] measure time out of guest Glauber Costa
2010-08-25 21:43 ` [RFC 4/7] change kernel accounting to include steal time Glauber Costa
2010-08-25 21:43 ` [RFC 5/7] kvm steal time implementation Glauber Costa
2010-08-25 21:43 ` [RFC 6/7] touch softlockup watchdog Glauber Costa
2010-08-25 21:43 ` [RFC 7/7] tell guest about steal time feature Glauber Costa
2010-08-26 22:13 ` Rik van Riel [this message]
2010-08-26 22:35 ` [RFC 5/7] kvm steal time implementation Glauber Costa
2010-08-26 17:23 ` [RFC 4/7] change kernel accounting to include steal time Marcelo Tosatti
2010-08-26 20:28 ` Glauber Costa
2010-08-26 20:47 ` Marcelo Tosatti
2010-08-26 21:05 ` Rik van Riel
2010-08-26 21:13 ` Glauber Costa
2010-08-26 21:14 ` Anthony Liguori
2010-08-26 21:40 ` Glauber Costa
2010-08-26 23:12 ` Marcelo Tosatti
2010-08-27 0:33 ` Glauber Costa
2010-08-27 15:25 ` Marcelo Tosatti
2010-08-26 21:19 ` Rik van Riel
2010-08-26 21:39 ` Glauber Costa
2010-08-29 9:59 ` Avi Kivity
2010-08-29 15:13 ` Rik van Riel
2010-08-29 15:25 ` Avi Kivity
2010-08-29 15:42 ` Rik van Riel
2010-08-29 15:47 ` Avi Kivity
2010-08-30 12:42 ` Glauber Costa
2010-08-30 13:15 ` Avi Kivity
2010-08-26 20:54 ` [RFC 3/7] measure time out of guest Zachary Amsden
2010-08-26 21:14 ` Glauber Costa
2010-08-29 9:53 ` Avi Kivity
2010-08-26 20:44 ` [RFC 2/7] change headers preparing for steal time Zachary Amsden
2010-08-26 21:04 ` Rik van Riel
2010-08-26 21:17 ` Glauber Costa
2010-08-26 22:11 ` Rik van Riel
2010-08-29 9:51 ` Avi Kivity
2010-08-30 12:44 ` Glauber Costa
2010-08-30 13:10 ` Avi Kivity
2010-08-26 19:46 ` [RFC 1/7] Implement getnsboottime kernel API Rik van Riel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C76E6F3.5020402@redhat.com \
--to=riel@redhat.com \
--cc=avi@redhat.com \
--cc=glommer@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=zamsden@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.