|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 8/8] x86/time: group time stamps into a structure
On 15/06/16 11:30, Jan Beulich wrote:
> If that had been done from the beginning, mistakes like the one
> corrected in commit b64438c7c1 ("x86/time: use correct (local) time
> stamp in constant-TSC calibration fast path") would likely never have
> happened.
>
> Also add a few "const" to make more obvious when things aren't expected
> to change.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
With one further suggestion.
> @@ -1037,40 +1029,34 @@ static void local_time_calibration(void)
> {
> /* Atomically read cpu_calibration struct and write cpu_time struct.
> */
> local_irq_disable();
> - t->local_tsc_stamp = c->local_tsc_stamp;
> - t->stime_local_stamp = c->stime_local_stamp;
> - t->stime_master_stamp = c->stime_master_stamp;
> + t->stamp = *c;
> local_irq_enable();
> update_vcpu_system_time(current);
> goto out;
> }
>
> - prev_tsc = t->local_tsc_stamp;
> - prev_local_stime = t->stime_local_stamp;
> - prev_master_stime = t->stime_master_stamp;
> + prev = t->stamp;
>
> /* Disabling IRQs ensures we atomically read cpu_calibration struct. */
> local_irq_disable();
> - curr_tsc = c->local_tsc_stamp;
> - curr_local_stime = c->stime_local_stamp;
> - curr_master_stime = c->stime_master_stamp;
> + curr = *c;
> local_irq_enable();
>
> #if 0
Turning this #if 0 into an "if ( 0 ) /* For debugging. */" would cause
the printk()s to be parsed and discarded, and avoid the risk of printk
parameters bitrotting.
> printk("PRE%d: tsc=%"PRIu64" stime=%"PRIu64" master=%"PRIu64"\n",
> - smp_processor_id(), prev_tsc, prev_local_stime,
> prev_master_stime);
> + smp_processor_id(), prev.local_tsc, prev.local_stime,
> prev.master_stime);
> printk("CUR%d: tsc=%"PRIu64" stime=%"PRIu64" master=%"PRIu64
> " -> %"PRId64"\n",
> - smp_processor_id(), curr_tsc, curr_local_stime, curr_master_stime,
> - curr_master_stime - curr_local_stime);
> + smp_processor_id(), curr.local_tsc, curr.local_stime,
> curr.master_stime,
> + curr.master_stime - curr.local_stime);
> #endif
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |