Displaying 6 results from an estimated 6 matches for "local_tsc_stamp".
2008 Nov 25
7
when timer go back in dom0 save and restore or migrate, PV domain hung
...6/time.c    Tue Nov 18 14:34:14 2008 +0800
+++ b/xen/arch/x86/time.c    Fri Nov 21 17:34:15 2008 +0800
@@ -689,7 +689,6 @@
     wmb();
     (*version)++;
 }
-
 void update_vcpu_system_time(struct vcpu *v)
 {
     struct cpu_time       *t;
@@ -703,7 +702,6 @@
 
     if ( u->tsc_timestamp == t->local_tsc_stamp )
         return;
-
     version_update_begin(&u->version);
 
     u->tsc_timestamp     = t->local_tsc_stamp;
@@ -713,14 +711,19 @@
 
     version_update_end(&u->version);
 }
-
 void update_domain_wallclock_time(struct domain *d)
 {
     spin_lock(&wc_lock);
+    if(d->a...
2012 Mar 20
5
[hybrid]: hang in update_wall_time
Hi Ian/Stefano:
I changed over to the PV clock for hybrid liked we talked at the
hackathon. I still have the hang in update_wall_time() after dom0
switches to xen as clocksource.
The source of hang seems to be in xen stime_local_stamp in cpu_time that
suddenly jumps to a large 64bit value. I''ve been chasing to figure
where that happens, and why for the hybrid and not PV. It appears the
2008 Nov 27
1
Re: RE: Re: Re: when timer go back in dom0 save and restore ormigrate, PV domain hung
...89,6                 @@
      wmb();
     (*version)++;
 }
-
 void                  update_vcpu_system_time(struct vcpu              
  *v)
 {
      struct                cpu_time        *t;
@@               -703,7  +702,6                 @@
 
     if (                 u->tsc_timestamp ==  t->local_tsc_stamp       
         )
          return;
-
      version_update_begin(&u->version);
 
      u->tsc_timestamp                     = t->local_tsc_stamp;
@@                 -713,14  +711,19                 @@
 
      version_update_end(&u->version);
 }
-
 void                  update_do...
2007 Aug 30
0
[PATCH][Retry 1] 1/4: cpufreq/PowerNow! in Xen: Xen timer changes
...mult = new_mult >> 1;
+    }
+    while (new_mult < (1LL << 31)) {
+        new_shift -= 1;
+        new_mult = new_mult << 1;
+    }
+
+    t->tsc_scale.mul_frac = new_mult;
+    t->tsc_scale.shift = new_shift;
+    local_irq_disable();
+    rdtscll(curr_tsc);
+    t->local_tsc_stamp = curr_tsc;
+    t->stime_local_stamp = get_s_time();
+    t->stime_master_stamp = read_platform_stime();
+    local_irq_enable();
+
+    platform_time_calibration();
+}
+
 /* Set clock to <secs,usecs> after 00:00:00 UTC, 1 January, 1970. */
 void do_settime(unsigned long secs, unsigned...
2007 May 15
3
[PATCH 1/12] Add suspend/resume to devices owned by Xen
...unsigned long secs, unsi
     rcu_read_unlock(&domlist_read_lock);
 }
 
+static int on_resume;
 static void local_time_calibration(void *unused)
 {
     struct cpu_time *t = &this_cpu(cpu_time);
@@ -872,7 +953,8 @@ void init_percpu_time(void)
 
     local_irq_save(flags);
     rdtscll(t->local_tsc_stamp);
-    now = (smp_processor_id() == 0) ? 0 : read_platform_stime();
+    now = ((smp_processor_id() == 0) && !on_resume) ?
+                      0 : read_platform_stime();
     local_irq_restore(flags);
 
     t->stime_master_stamp = now;
@@ -881,6 +963,11 @@ void init_percpu_time(void)...
2006 Oct 04
0
[PATCH,RFC 6/17] 32-on-64 shared info handling
...v, time);
 
     version_update_begin(&u->version);
 
@@ -690,7 +690,7 @@ static inline void __update_vcpu_system_
 
 void update_vcpu_system_time(struct vcpu *v)
 {
-    if ( v->vcpu_info->time.tsc_timestamp !=
+    if ( vcpu_info(v, time.tsc_timestamp) !=
          this_cpu(cpu_time).local_tsc_stamp )
         __update_vcpu_system_time(v);
 }
@@ -698,10 +698,10 @@ void update_vcpu_system_time(struct vcpu
 void update_domain_wallclock_time(struct domain *d)
 {
     spin_lock(&wc_lock);
-    version_update_begin(&d->shared_info->wc_version);
-    d->shared_info->wc_sec  = wc_...