All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: "Cédric Schieli" <cschieli@gmail.com>
Cc: xen-devel <xen-devel@lists.xensource.com>
Subject: Re: DomU clock jumps forward then freezes after Dom0 reboot
Date: Tue, 26 Oct 2010 09:52:12 -0700	[thread overview]
Message-ID: <4CC7073C.1020605@goop.org> (raw)
In-Reply-To: <AANLkTi=v70oeFJbbtrha4DR-kgSroDy_wNiHH9BMVBxz@mail.gmail.com>

 On 10/26/2010 06:08 AM, Cédric Schieli wrote:
> 2010/10/26 Jeremy Fitzhardinge <jeremy@goop.org>:
>>  On 10/24/2010 05:31 AM, Cédric Schieli wrote:
>>> Hello,
>>>
>>> I can confirm my problem reported here
>>> http://lists.xensource.com/archives/html/xen-devel/2010-10/msg00057.html
>>> is the same.
>>> DomU kernels affected by the migration hang are also affected by the
>>> save/restore hang. Reverting "x86, paravirt: Add a global
>>> synchronization point for pvclock" also fix the save/restore hang.
>>> After doing save/reboot/restore (which led to a hang), migrating it to
>>> a host with a longer uptime will unblock the domain, but the wallclock
>>> will be several hours forward. Migrating back will block again.
>> Does this help?
> Yes. With this patch applied I can migrate and migrate back without
> problem. Save/restore with a reboot in between also works.

OK, thanks very much.

    J

> Thanks !
>
>> From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
>> Date: Mon, 25 Oct 2010 16:53:46 -0700
>> 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 cd02f32..6226870 100644
>> --- a/arch/x86/include/asm/pvclock.h
>> +++ b/arch/x86/include/asm/pvclock.h
>> @@ -11,5 +11,6 @@ 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);
>>
>>  #endif /* _ASM_X86_PVCLOCK_H */
>> diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
>> index 239427c..a4f07c1 100644
>> --- a/arch/x86/kernel/pvclock.c
>> +++ b/arch/x86/kernel/pvclock.c
>> @@ -120,6 +120,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;
>>
>>
>>
>>

  reply	other threads:[~2010-10-26 16:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-19 10:07 DomU clock jumps forward then freezes after Dom0 reboot Olivier Hanesse
2010-10-24 12:31 ` Cédric Schieli
2010-10-25 23:25   ` Jeremy Fitzhardinge
2010-10-26  0:21   ` Jeremy Fitzhardinge
2010-10-26 13:08     ` Cédric Schieli
2010-10-26 16:52       ` Jeremy Fitzhardinge [this message]
  -- strict thread matches above, loose matches on Subject: below --
2010-10-12 14:11 Eelco Dolstra

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=4CC7073C.1020605@goop.org \
    --to=jeremy@goop.org \
    --cc=cschieli@gmail.com \
    --cc=xen-devel@lists.xensource.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.