sorry, that was a premature send... >>> > What about update_turbo_pstate()? >>> > >>> > In theory MSR_IA32_MISC_ENABLE_TURBO_DISABLE can be set at any time, so >>> > wouldn't that become problematic after this change? >>> >>> yes, the sysfs "no_turbo" attribute can be modified at any time, invoking >>> update_turbo_state(), which will update MSR_IA32_MISC_ENABLE_TURBO_DISABLE >> >> If that was the only way it could change, I wouldn't worry about it, but what >> about changes by BMCs and similar? Are they not a concern? >> >>> But how is the presence or change in turbo related to the lack of a >>> need to hook the scheduler callback in "performance" mode? The hook >>> literally does nothing in this case, except consume cycles, no? >> >> No. >> >> It actually sets the P-state to the current maximum (which admittedly is >> excessive) exactly because the maximum may change on the fly in theory. > > There are 2 cases. > > If turbo was enabled and were we requesting max turbo > and "somebody" disabled turbo in an MSR, then the HW would > simply clip our excessive request to what the hardware supports.
if turbo was disabled and we were requesting max non-turbo, and "somebody" enabled turbo in the MSR, then it is highly likely that current request is already sufficiently high enough to enable turbo. "highly likely" = would work on 100% of the machines I have ever seen, including those with mis-configured TAR. ie. it should not matter. >> If it can't change on the fly (or we don't care), we can do some more >> simplifications there. :-) > > I do not think it is Linux's responsibility to monitor changes to MSRs > such as Turbo enable/disable done behind its back by a BMC at run-time. > (if this is even possible) > > > -- > Len Brown, Intel Open Source Technology Center

