From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
"Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
kvm-devel <kvm@vger.kernel.org>,
Glauber Costa <glommer@redhat.com>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Virtualization <virtualization@lists.linux-foundation.org>,
Olivier Hanesse <olivier.hanesse@gmail.com>,
Avi Kivity <avi@redhat.com>, Eelco Dolstra <e.dolstra@tudelft.nl>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] x86/pvclock-xen: zero last_value on resume
Date: Fri, 26 Nov 2010 14:29:40 -0800 [thread overview]
Message-ID: <4CF034D4.70005@goop.org> (raw)
In-Reply-To: <20101126104047.GA9798@elte.hu>
On 11/26/2010 02:40 AM, Ingo Molnar wrote:
> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>> On 10/26/2010 09:59 AM, Jeremy Fitzhardinge wrote:
>>> If the guest domain has been suspend/resumed or migrated, then the
>>> system clock backing the pvclock clocksource may revert to a smaller
>>> value (ie, can be non-monotonic across the migration/save-restore).
>>> Make sure we zero last_value in that case so that the domain
>>> continues to see clock updates.
>> Ping? Looks like this fell through the gaps.
> Does not apply cleanly here - mind resending the latest version?
It rebased cleanly to 2.6.37-rc3. You can pull it from:
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git pvclock-resume
Jeremy Fitzhardinge (1):
x86/pvclock: zero last_value on resume
arch/x86/include/asm/pvclock.h | 1 +
arch/x86/kernel/pvclock.c | 5 +++++
arch/x86/xen/time.c | 2 ++
3 files changed, 8 insertions(+), 0 deletions(-)
Thanks,
J
Subject: [PATCH] x86/pvclock: zero last_value on resume
If the guest domain has been suspend/resumed or migrated, then the
system clock backing the pvclock clocksource may revert to a smaller
value (ie, can be non-monotonic across the migration/save-restore).
Make sure we zero last_value in that case so that the domain
continues to see clock updates.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h
index 7f7e577..31d84ac 100644
--- a/arch/x86/include/asm/pvclock.h
+++ b/arch/x86/include/asm/pvclock.h
@@ -11,6 +11,7 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src);
void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
struct pvclock_vcpu_time_info *vcpu,
struct timespec *ts);
+void pvclock_resume(void);
/*
* Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction,
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index 008b91e..42eb330 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -83,6 +83,11 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
static atomic64_t last_value = ATOMIC64_INIT(0);
+void pvclock_resume(void)
+{
+ atomic64_set(&last_value, 0);
+}
+
cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
{
struct pvclock_shadow_time shadow;
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index b2bb5aa..5da5e53 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -426,6 +426,8 @@ void xen_timer_resume(void)
{
int cpu;
+ pvclock_resume();
+
if (xen_clockevent != &xen_vcpuop_clockevent)
return;
WARNING: multiple messages have this Message-ID (diff)
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
kvm-devel <kvm@vger.kernel.org>,
Glauber Costa <glommer@redhat.com>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Virtualization <virtualization@lists.linux-foundation.org>,
Olivier Hanesse <olivier.hanesse@gmail.com>,
Avi Kivity <avi@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Eelco Dolstra <e.dolstra@tudelft.nl>
Subject: Re: [PATCH] x86/pvclock-xen: zero last_value on resume
Date: Fri, 26 Nov 2010 14:29:40 -0800 [thread overview]
Message-ID: <4CF034D4.70005@goop.org> (raw)
In-Reply-To: <20101126104047.GA9798@elte.hu>
On 11/26/2010 02:40 AM, Ingo Molnar wrote:
> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>> On 10/26/2010 09:59 AM, Jeremy Fitzhardinge wrote:
>>> If the guest domain has been suspend/resumed or migrated, then the
>>> system clock backing the pvclock clocksource may revert to a smaller
>>> value (ie, can be non-monotonic across the migration/save-restore).
>>> Make sure we zero last_value in that case so that the domain
>>> continues to see clock updates.
>> Ping? Looks like this fell through the gaps.
> Does not apply cleanly here - mind resending the latest version?
It rebased cleanly to 2.6.37-rc3. You can pull it from:
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git pvclock-resume
Jeremy Fitzhardinge (1):
x86/pvclock: zero last_value on resume
arch/x86/include/asm/pvclock.h | 1 +
arch/x86/kernel/pvclock.c | 5 +++++
arch/x86/xen/time.c | 2 ++
3 files changed, 8 insertions(+), 0 deletions(-)
Thanks,
J
Subject: [PATCH] x86/pvclock: zero last_value on resume
If the guest domain has been suspend/resumed or migrated, then the
system clock backing the pvclock clocksource may revert to a smaller
value (ie, can be non-monotonic across the migration/save-restore).
Make sure we zero last_value in that case so that the domain
continues to see clock updates.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h
index 7f7e577..31d84ac 100644
--- a/arch/x86/include/asm/pvclock.h
+++ b/arch/x86/include/asm/pvclock.h
@@ -11,6 +11,7 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src);
void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
struct pvclock_vcpu_time_info *vcpu,
struct timespec *ts);
+void pvclock_resume(void);
/*
* Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction,
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index 008b91e..42eb330 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -83,6 +83,11 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
static atomic64_t last_value = ATOMIC64_INIT(0);
+void pvclock_resume(void)
+{
+ atomic64_set(&last_value, 0);
+}
+
cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
{
struct pvclock_shadow_time shadow;
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index b2bb5aa..5da5e53 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -426,6 +426,8 @@ void xen_timer_resume(void)
{
int cpu;
+ pvclock_resume();
+
if (xen_clockevent != &xen_vcpuop_clockevent)
return;
next prev parent reply other threads:[~2010-11-26 22:29 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-26 16:59 [PATCH] x86/pvclock-xen: zero last_value on resume Jeremy Fitzhardinge
2010-10-26 16:59 ` Jeremy Fitzhardinge
2010-10-26 17:48 ` Glauber Costa
2010-10-26 17:48 ` Glauber Costa
2010-10-26 17:48 ` Glauber Costa
2010-10-27 18:53 ` [Xen-devel] " Jeremy Fitzhardinge
2010-10-27 18:53 ` Jeremy Fitzhardinge
2010-10-27 20:59 ` H. Peter Anvin
2010-11-03 12:46 ` Ian Campbell
2010-11-03 12:46 ` Ian Campbell
2010-11-03 12:46 ` Ian Campbell
2010-11-03 12:46 ` Ian Campbell
2010-10-27 20:59 ` [Xen-devel] " H. Peter Anvin
2010-11-22 20:16 ` Jeremy Fitzhardinge
2010-11-22 20:16 ` Jeremy Fitzhardinge
2010-11-26 10:40 ` Ingo Molnar
2010-11-26 10:40 ` Ingo Molnar
2010-11-26 22:29 ` Jeremy Fitzhardinge
2010-11-26 22:29 ` Jeremy Fitzhardinge [this message]
2010-11-26 22:29 ` Jeremy Fitzhardinge
2010-11-26 10:40 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2010-10-26 16:59 Jeremy Fitzhardinge
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=4CF034D4.70005@goop.org \
--to=jeremy@goop.org \
--cc=Xen-devel@lists.xensource.com \
--cc=avi@redhat.com \
--cc=e.dolstra@tudelft.nl \
--cc=glommer@redhat.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=olivier.hanesse@gmail.com \
--cc=tglx@linutronix.de \
--cc=virtualization@lists.linux-foundation.org \
--cc=x86@kernel.org \
/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.