Hi Arjan,
On 15 August 2014 09:53, Arjan van de Ven arjan@linux.intel.com wrote:
On 8/15/2014 6:42 AM, Arjan van de Ven wrote:
On 8/15/2014 6:08 AM, Ashwin Chaugule wrote:
(b) we come up with ways to provide the bounds around a Desired value using the information from the platform. (long term)
I briefly looked at the x86 HWP (Hardware Performance States) in the s/w manual again. Its essentially an implementation of CPPC. It seems like X86 has implemented most if not all these registers as MSRs. I'm really interested in knowing if anyone there is/has been working on using them and what they found.
we've found that so far that there are two reasonable options
Let the OS device (old style)
Let the hardware decide (new style)
is there in practice today in the turbo range (which is increasingly
the whole thing) and the hardware can make decisions about power budgetting on a timescale the OS can never even dream of, so once you give control the the hardware (with CPPC or native) it's normally better to just get out of the way as OS.
Interesting. This sounds like X86 plans to use the Autonomous bits that got added to the CPPC spec. (v5.1)? I agree that the platform can make decisions on a much finer timescale. But even in the non-Autonomous mode, by providing the bounds around a Desired Value, the OS can get out of the way knowing that the platform would deliver something in the range it requested. If the OS can provide bounds, it seems to me that the platform can make more optimum decisions, rather than trying to guess whats running (or not).
I should clarify this; with increasing number of cores, you end up with much more dynamic maximums (e.g. turbo in Intel speak) and the hardware already controls this (yes the OS gives hints, but that's mostly a lot of OS work for little value)
Going completely Autonomous (i.e. letting the platform decide whats best w/o OS hints) may be possible only for some platforms. There will be several ones which dont have that kind of logic built into the hardware. In such cases getting OS hints would be the only option.
in a single or even dual core situation you may have a different ballgame with a small turbo range, but even in phones octocores seem to be the norm nowadays ;-) (just finished reading the Samsung announcement)
Yea, its getting crazy out there.
Cheers, Ashwin