[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 2/3] x86/time: yield to hyperthreads after updating TSC during rendezvous
Since we'd like the updates to be done as synchronously as possible, make an attempt at yielding immediately after the TSC write. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- v4: New. --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -1708,7 +1708,14 @@ static void time_calibration_tsc_rendezv atomic_inc(&r->semaphore); if ( i == 0 ) + { write_tsc(master_tsc); + /* + * Try to give our hyperthread(s), if any, a chance to do + * the same as instantly as possible. + */ + cpu_relax(); + } while ( atomic_read(&r->semaphore) != (2*total_cpus - 1) ) cpu_relax(); @@ -1730,7 +1737,14 @@ static void time_calibration_tsc_rendezv } if ( i == 0 ) + { write_tsc(master_tsc); + /* + * Try to give our hyperthread(s), if any, a chance to do + * the same as instantly as possible. + */ + cpu_relax(); + } atomic_inc(&r->semaphore); while ( atomic_read(&r->semaphore) > total_cpus )
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |