Skip to content
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

Thermald 2 5 merge #359

Merged
merged 18 commits into from Jul 8, 2022
Merged

Thermald 2 5 merge #359

merged 18 commits into from Jul 8, 2022

Conversation

spandruvada
Copy link
Contributor

Version 2.5 pre release.

Some of the newer device PSVT is replaced with ITMT table. Here
Adaptive Action table will point to ITMT table instead of PSVT.

Parse ITMT, if present while parsing other adaptive tables.
A trip currenly have
- A threshold temperature
- Sampling period
- Influence
- Target state

Add also possible minimum and maximum state. This can be used
when target state is missing and minimum and maximum state
depends on cooling device minimum and maximum. With this
capability cooling device minimum and maximum state can be
limited per trip.
Similar to PSVT install, implement ITMT install. When APAT calls
for ITMT instead of ITMT install ITMT target. The install portion
is much simpler. There can be only one trip in a ITMT entry so
no need to consolidate.

An ITMT entry will have a trip, min and max value for RAPL PL1.
So create trip with this information and bind RAPL cooling device
to this.
When throttling action takes place, use the trip specfic min
max if valid. But it will require some conflicts when two
trips in different zones calls for different min and max while
they are active. Use the most constrained one in this case.

Refer to code comments for changes.
Update the sysfs path for INT3400 sysfs to be able to run adaptive
mode.
Move debug_mode_on() to thd_engine class instead of thd_engine_default
so it can be accessed via thd_engine pointer.
To better organize code, separate into two classes. One just
implement GDDV parsing and other actually doing adaptive processing.

No functional changes are expected.
Read idsp and trip from data vault as the existing sysfs read values
may not be present or wrong.
Make a placeholder for parsing _TRT from data vault. The existing
sysfs read data may be invalid.
But this is not fully integrated to passive policy as there is no
such system available for test.
When Adaptive or Passive 2 policy are present in the idsp, use
RAPL PL1 max/min from PPCC table in data vault without checking
if that is lower than what system is booted with.
When condition table refers to some sensor which is not present,
don't print warning on every check. Just use information level
instead of warning.
Parse GDDV tables so that IDSP and PPCC information is available
for RAPL cdev. This is just parsing GDDV not evaluating any
conditions. Evaulating conditions will require all sensors
and zone intialized, so that is done during thd_engine_start().
Since there is a sysfs interface now, remove this direct access.
When both tables are specified for the same action, merge them.
These files have no headers, so protex complains.
Update version and license info.
@spandruvada spandruvada merged commit bb8671d into master Jul 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant