control:p10bmc: Events to set DVFS temp params
Create the events that use the set_parameter_from_group_max action to
set parameters with the processor core and IO ring DVFS (Dynamic
Frequency and Voltage Slewing) temperatures, minus 3 degrees.
Subtracting 3 degrees allows the fans to start increasing before the
DVFS kicks in. The value chosen is just a starting point.
Parameter names:
* proc_N_core_dvfs_temp
* proc_N_ioring_dvfs_temp
These parameters can then be used by the set_net_increase_target action
as the value to compare the actual temperatures against to know when to
start increasing fan targets.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I40320ef87b2e3ccd5ea6761b61b3c3fcc3f0b526
diff --git a/control/config_files/p10bmc/ibm,rainier-1s4u/events.json b/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
index 5f273f9..6fcd6c1 100644
--- a/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
+++ b/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
@@ -160,5 +160,141 @@
"floor": 10000
}
]
- }
+ },
+ {
+ "name": "Set Proc 0 Core DVFS parameter",
+ "groups": [
+ {
+ "name": "proc 0 core dvfs temp",
+ "interface": "xyz.openbmc_project.Sensor.Value",
+ "property": { "name": "Value" }
+ }
+ ],
+ "triggers": [
+ {
+ "class": "init",
+ "method": "get_properties"
+ },
+ {
+ "class": "signal",
+ "signal": "interfaces_added"
+ },
+ {
+ "class": "signal",
+ "signal": "properties_changed"
+ }
+ ],
+ "actions": [
+ {
+ "name": "set_parameter_from_group_max",
+ "parameter_name": "proc_0_core_dvfs_temp",
+ "modifier": {
+ "operator": "minus",
+ "value": 3
+ }
+ }
+ ]
+ },
+ {
+ "name": "Set Proc 1 Core DVFS parameter",
+ "groups": [
+ {
+ "name": "proc 1 core dvfs temp",
+ "interface": "xyz.openbmc_project.Sensor.Value",
+ "property": { "name": "Value" }
+ }
+ ],
+ "triggers": [
+ {
+ "class": "init",
+ "method": "get_properties"
+ },
+ {
+ "class": "signal",
+ "signal": "interfaces_added"
+ },
+ {
+ "class": "signal",
+ "signal": "properties_changed"
+ }
+ ],
+ "actions": [
+ {
+ "name": "set_parameter_from_group_max",
+ "parameter_name": "proc_1_core_dvfs_temp",
+ "modifier": {
+ "operator": "minus",
+ "value": 3
+ }
+ }
+ ]
+ },
+ {
+ "name": "Set Proc 0 IO Ring DVFS parameter",
+ "groups": [
+ {
+ "name": "proc 0 ioring dvfs temp",
+ "interface": "xyz.openbmc_project.Sensor.Value",
+ "property": { "name": "Value" }
+ }
+ ],
+ "triggers": [
+ {
+ "class": "init",
+ "method": "get_properties"
+ },
+ {
+ "class": "signal",
+ "signal": "interfaces_added"
+ },
+ {
+ "class": "signal",
+ "signal": "properties_changed"
+ }
+ ],
+ "actions": [
+ {
+ "name": "set_parameter_from_group_max",
+ "parameter_name": "proc_0_ioring_dvfs_temp",
+ "modifier": {
+ "operator": "minus",
+ "value": 3
+ }
+ }
+ ]
+ },
+ {
+ "name": "Set Proc 1 IO Ring DVFS parameter",
+ "groups": [
+ {
+ "name": "proc 1 ioring dvfs temp",
+ "interface": "xyz.openbmc_project.Sensor.Value",
+ "property": { "name": "Value" }
+ }
+ ],
+ "triggers": [
+ {
+ "class": "init",
+ "method": "get_properties"
+ },
+ {
+ "class": "signal",
+ "signal": "interfaces_added"
+ },
+ {
+ "class": "signal",
+ "signal": "properties_changed"
+ }
+ ],
+ "actions": [
+ {
+ "name": "set_parameter_from_group_max",
+ "parameter_name": "proc_1_ioring_dvfs_temp",
+ "modifier": {
+ "operator": "minus",
+ "value": 3
+ }
+ }
+ ]
+ }
]
diff --git a/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json b/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
index 32350a7..71e9b7f 100644
--- a/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
+++ b/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
@@ -236,5 +236,29 @@
"/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
"/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp"
]
+ },
+ {
+ "name": "proc 0 core dvfs temp",
+ "members": [
+ "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
+ ]
+ },
+ {
+ "name": "proc 1 core dvfs temp",
+ "members": [
+ "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
+ ]
+ },
+ {
+ "name": "proc 0 ioring dvfs temp",
+ "members": [
+ "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
+ ]
+ },
+ {
+ "name": "proc 1 ioring dvfs temp",
+ "members": [
+ "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
+ ]
}
]