-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add initial support for DPTF adaptive performance policy #224
Commits on Apr 13, 2020
-
Don't hardcode the UUID for INT3400
Different thermal policies require different UUIDs to be written to the INT3400 interface. Avoid hardcoding that and allow engines to override it as needed.
Configuration menu - View commit details
-
Copy full SHA for 57b9e52 - Browse repository at this point
Copy the full SHA 57b9e52View commit details -
Allow the XML parser to be disabled
Systems may provide the DPTF policy information in an ACPI table. Allow that to be used directly, and disable parsing of XML config to avoid confusion.
Configuration menu - View commit details
-
Copy full SHA for b5fd0d6 - Browse repository at this point
Copy the full SHA b5fd0d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81e76d4 - Browse repository at this point
Copy the full SHA 81e76d4View commit details -
Improve handling of large binary sysfs files
If we're going to read a binary sysfs file, we want to know how big it is in advance. Add a helper to do that. In addition, add support for reading files greater than a single page.
Configuration menu - View commit details
-
Copy full SHA for 68ecc48 - Browse repository at this point
Copy the full SHA 68ecc48View commit details -
We can obtain PPCC parameters from the firmware, so abstract that rather than calling directly into the XML parser code.
Configuration menu - View commit details
-
Copy full SHA for 1806ba0 - Browse repository at this point
Copy the full SHA 1806ba0View commit details -
Add support for passing adaptive target information to devices
The adaptive target tables may include information targeted at specific device types. Add core support for passing that through to the cooling devices.
Configuration menu - View commit details
-
Copy full SHA for 6f1a3f2 - Browse repository at this point
Copy the full SHA 6f1a3f2View commit details -
Allow the DRAM RAPL device to use PPCC
Firmware may provide multiple PPCC entries, including one for DRAM. Try to use it if we can, but fix up the XML parser to it makes sure that we don't break existing setups.
Configuration menu - View commit details
-
Copy full SHA for cf256d6 - Browse repository at this point
Copy the full SHA cf256d6View commit details -
Add an adaptive target callback into RAPL code
Add support for setting RAPL parameters based on adaptive targets. Incomplete at present.
Configuration menu - View commit details
-
Copy full SHA for e5e10a6 - Browse repository at this point
Copy the full SHA e5e10a6View commit details -
Allow engines to force the use of MMIO for RAPL
In adaptive mode we prefer the use of the MMIO RAPL interface if available.
Configuration menu - View commit details
-
Copy full SHA for c7794ac - Browse repository at this point
Copy the full SHA c7794acView commit details -
Make thd_engine_start() virtual
We want engines to be able to override this.
Configuration menu - View commit details
-
Copy full SHA for ffa7c93 - Browse repository at this point
Copy the full SHA ffa7c93View commit details -
Call into engines to update their state
This is something of a hack right now (it should be event driven rather than polling), but we need to update the adaptive engine state to check whether we should transition to a new target.
Configuration menu - View commit details
-
Copy full SHA for 84632fc - Browse repository at this point
Copy the full SHA 84632fcView commit details -
Enable and disable the INT3400 thermal zone
The firmware doesn't pay attention to the configured UUID in the INT3400 device until _OSC is called, and this only happens when we enable the associated thermal zone. Make sure we do so, and disable it again on exit.
Configuration menu - View commit details
-
Copy full SHA for bd0a77a - Browse repository at this point
Copy the full SHA bd0a77aView commit details -
Add basic support for the DPTM adaptive power policy
DPTM provides an adaptive power policy that allows for improved integration between the platform and the OS. Firmware can provide a set of complex conditions to the OS, and an OS agent (in this case thermal_daemon) is responsible for evaluating them, potentially making use of information that is easily available to the OS and not the firmware. The agent evaluates each set of conditions in turn, and once the first evaluates completely it triggers a set of actions. This implementation only covers a subset of the conditions - notably, it only currently handles conditions that are associated with OEM-specific variables exported via ACPI. It is also only currently capable of managing RAPL targets or loading new passive thermal policies, since that's all that my test system does.
Configuration menu - View commit details
-
Copy full SHA for c31212c - Browse repository at this point
Copy the full SHA c31212cView commit details -
Add a command line option to enable the use of the adaptive engine.
Configuration menu - View commit details
-
Copy full SHA for ae2c0c7 - Browse repository at this point
Copy the full SHA ae2c0c7View commit details -
Configuration menu - View commit details
-
Copy full SHA for e19ccf7 - Browse repository at this point
Copy the full SHA e19ccf7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91cef64 - Browse repository at this point
Copy the full SHA 91cef64View commit details -
Handle compressed GDDV payloads
GDDV payloads can be compressed using LZMA. Add support for handling that.
Configuration menu - View commit details
-
Copy full SHA for 96af722 - Browse repository at this point
Copy the full SHA 96af722View commit details -
PTTV entries may have a uint64 rather than a string for the target argument, so make sure we handle that and also deal with cases where we have multiple PSVTs in the parent object rather than in the shared space by passing through a unique name.
Configuration menu - View commit details
-
Copy full SHA for a9f91cc - Browse repository at this point
Copy the full SHA a9f91ccView commit details -
Fix offsets in APCT V2 table calculations
Skipping a uint64 requires also skipping the type defintion, so fix up the offset calculations.
Configuration menu - View commit details
-
Copy full SHA for fce2afd - Browse repository at this point
Copy the full SHA fce2afdView commit details -
Don't make assumptions about key formatting
We're not going to do anything with this data right now, so if it's not something we can parse, bail.
Configuration menu - View commit details
-
Copy full SHA for 5aab3b1 - Browse repository at this point
Copy the full SHA 5aab3b1View commit details -
Don't crash out as soon as hitting an unsupported condition.
This changes both the fatal into an error, and the loop to report _all_ unsupported conditions at once. It should make it easier to gauge how much work is neded to support a certain firmware.
Configuration menu - View commit details
-
Copy full SHA for d3ccd5e - Browse repository at this point
Copy the full SHA d3ccd5eView commit details -
Add support for APPC-based conditions
Some systems use APPC to provide additional information associated with conditions. Parse that and then merge it into our conditions.
Configuration menu - View commit details
-
Copy full SHA for 1d61fba - Browse repository at this point
Copy the full SHA 1d61fbaView commit details -
Fix up some more incorrect offset calculations
Doing it this way was a bad idea, but here we are.
Configuration menu - View commit details
-
Copy full SHA for 2b712a4 - Browse repository at this point
Copy the full SHA 2b712a4View commit details -
Make sure we don't inappropriately walk off the end of the APAT table.
Configuration menu - View commit details
-
Copy full SHA for 04df288 - Browse repository at this point
Copy the full SHA 04df288View commit details -
Handle multi-entry PSVT tables
PSVT tables may contain multiple passive trip points. Add support for that.
Configuration menu - View commit details
-
Copy full SHA for 0bf7e22 - Browse repository at this point
Copy the full SHA 0bf7e22View commit details -
Add support for temperature comparisons
Add rough support for temperature comparisons. Right now this ignores hysteresis.
Configuration menu - View commit details
-
Copy full SHA for 1a5893f - Browse repository at this point
Copy the full SHA 1a5893fView commit details -
Harden against malformed APPC tables
If the APPC doesn't have anything that looks like a legitimate version number at the start, ignore it.
Configuration menu - View commit details
-
Copy full SHA for 8636b66 - Browse repository at this point
Copy the full SHA 8636b66View commit details -
Add support for reading lid state
This relies on upower, so add a dependency on that as well.
Configuration menu - View commit details
-
Copy full SHA for 6fa65f9 - Browse repository at this point
Copy the full SHA 6fa65f9View commit details -
Add support for conditions that depend on whether the system is on AC or not
Configuration menu - View commit details
-
Copy full SHA for 4c6386c - Browse repository at this point
Copy the full SHA 4c6386cView commit details -
Add stub workload condition handler
Add a handler to report that the workload is bursty at all times - we don't currently have a good way to report something meaningful here.
Configuration menu - View commit details
-
Copy full SHA for c9556ed - Browse repository at this point
Copy the full SHA c9556edView commit details -
Requires that the platform provide a SW_TABLET_MODE switch, so this may not be reliable.
Configuration menu - View commit details
-
Copy full SHA for bb94fda - Browse repository at this point
Copy the full SHA bb94fdaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e354b8 - Browse repository at this point
Copy the full SHA 3e354b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for bb75239 - Browse repository at this point
Copy the full SHA bb75239View commit details
Commits on Apr 14, 2020
-
Fix the free()ing of arrays allocated with new, and notice that we've hit the end of the data vault and are starting a new (currently unused) entry and avoid misparsing it.
Configuration menu - View commit details
-
Copy full SHA for efd9261 - Browse repository at this point
Copy the full SHA efd9261View commit details -
Remove trailing _ from zone names
Names are padded out to four characters using trailing _ characters, but device names aren't padded. Trim the trailing characters so we can match more easily.
Configuration menu - View commit details
-
Copy full SHA for 3cc5e95 - Browse repository at this point
Copy the full SHA 3cc5e95View commit details -
Don't try to match supported UUIDs if the firmware doesn't give us data
Current Intel platforms don't appear to provide supported UUIDs via ACPI, only via the data vault. Since we're not parsing that in-kernel, just assume it matches for now.
Configuration menu - View commit details
-
Copy full SHA for 8f096ea - Browse repository at this point
Copy the full SHA 8f096eaView commit details -
I can't find any supporting evidence for special casing the TMEM zone to use dram RAPL rather than the CPU package, and there are machines with TMEM zones that don't have dram RAPL, so remove it for now.
Configuration menu - View commit details
-
Copy full SHA for 4900993 - Browse repository at this point
Copy the full SHA 4900993View commit details -
Add support for setting the TCC offset
This should reduce CPU-based thermal throttling
Configuration menu - View commit details
-
Copy full SHA for 9db0434 - Browse repository at this point
Copy the full SHA 9db0434View commit details
Commits on Apr 15, 2020
-
It seems like the PL1MAX target is intended to raise the maximum RAPL limit rather than to immediately change the limit - this is supported by various laptops that set PL1MAX and also set PL1PowerLimit in the same table, presumably to allow a gradual ramping up to avoid immediately crossing other trip points.
Configuration menu - View commit details
-
Copy full SHA for 030b538 - Browse repository at this point
Copy the full SHA 030b538View commit details -
Enforce RAPL limits immediately
If the current state is outside the new RAPL limits, clamp it to the limit.
Configuration menu - View commit details
-
Copy full SHA for f3c9e03 - Browse repository at this point
Copy the full SHA f3c9e03View commit details
Commits on Apr 16, 2020
-
Add support for statically updating the PL2 configuration when requested.
Configuration menu - View commit details
-
Copy full SHA for fb0350f - Browse repository at this point
Copy the full SHA fb0350fView commit details -
Add support for conditions with time constraints
Conditions can specify that a condition must have held for more than or less than a given period of time. Add support for that.
Configuration menu - View commit details
-
Copy full SHA for 3270db5 - Browse repository at this point
Copy the full SHA 3270db5View commit details -
Add support for setting passive trip points
The PSV action appears to indicate that the passive trip point for the associated device should be updated, so try doing that.
Configuration menu - View commit details
-
Copy full SHA for af56d7f - Browse repository at this point
Copy the full SHA af56d7fView commit details
Commits on Apr 19, 2020
-
Clear the temporary string stream before testing each sysfs entry, to test the correct entry names. Ensure that pl2_index is set, rather than using uninitialized memory when the short_term window isn't found.
Configuration menu - View commit details
-
Copy full SHA for e140a95 - Browse repository at this point
Copy the full SHA e140a95View commit details
Commits on Apr 26, 2020
-
Add some missing condition enum entries
We were out of sync for higher conditions, which caused misinterpretation of legitimate values.
Configuration menu - View commit details
-
Copy full SHA for 05493d3 - Browse repository at this point
Copy the full SHA 05493d3View commit details