[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Ping: [PATCH v2 RESEND] x86/time: correctly honor late clearing of TSC related feature flags

On 05/01/17 14:42, Jan Beulich wrote:
>>>> On 20.12.16 at 13:35, <andrew.cooper3@xxxxxxxxxx> wrote:
>> Once we have ever had cause to use time_calibration_tsc_rendezvous,
>> there is no situation where it is safe to switch back to
>> time_calibration_std_rendezvous, as the choice to use
>> time_calibration_tsc_rendezvous means the TSCs aren't in sync, and Xen
>> has no practical mechanism to resync them.  (We could guarantee not to
>> ever invoke Cstates, including C1E, but this doesn't prevent an SMI
>> doing that for us.)
> Okay, I think I'm finally following you. Yet ...
>> time_calibration_rendezvous_fn should start with the best case scenario,
>> and be gradually made worse by our AP discovery, but should never get
>> better.
> ... that's already the case with the patch: CONSTANT_TSC can only
> be cleared by command line option (i.e. before any of this code runs)
> or in tsc_check_writability() (which runs before clear_tsc_cap() gets
> invoked first). Hence the possibility of switching back from tsc to std
> depends solely on TSC_RELIABLE potentially getting set during/after
> AP bringup. Yet that never happens, we only ever clear that flag
> (which is part of the purpose of clear_tsc_cap()).
> Bottom line - I don't see how you think we may end up switching back
> from tsc to std. Perhaps it is then all just a matter of changing a few
> names and/or adding a BUG_ON() or panic() to make things more clear
> to you and possible other readers?

My concern is what happens if some code plays with the feature flags,
then re-calls clear_tsc_cap()

With your proposal, this will be unsafe as it loads the wrong rendezvous

With my proposal, there is no amount of playing with feature flags and
recalling clear_tsc_cap() which can end up reverting to a weaker
rendezvous function.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.