| [ |
| { |
| // Hold fans at the given target when a number of fans are missing. |
| "name": "fan(s) missing", |
| "groups": [ |
| { |
| "name": "fan inventory", |
| "interface": "xyz.openbmc_project.Inventory.Item", |
| "property": { "name": "Present" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "count_state_before_target", |
| "count": 1, |
| "state": false, |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| // Hold fans at the given target when a number of rotors are nonfunctional. |
| "name": "fan rotor(s) faulted", |
| "groups": [ |
| { |
| "name": "fan0 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "fan1 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "fan2 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "fan3 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "count_state_before_target", |
| "count": 2, |
| "state": false, |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| // (for the following 4 rules) |
| // if a dual-rotor fan becomes non-functional, lock its speed to |
| // poweron_target to lock the other rotor to full_speed |
| "name": "nonfunc rotor override-0", |
| "groups": [ |
| { |
| "name": "fan0 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "override_fan_target", |
| "count": 1, |
| "state": false, |
| "fans": ["fan0"], |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| "name": "nonfunc rotor override-1", |
| "groups": [ |
| { |
| "name": "fan1 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "override_fan_target", |
| "count": 1, |
| "state": false, |
| "fans": ["fan1"], |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| "name": "nonfunc rotor override-2", |
| "groups": [ |
| { |
| "name": "fan2 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "override_fan_target", |
| "count": 1, |
| "state": false, |
| "fans": ["fan2"], |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| "name": "nonfunc rotor override-3", |
| "groups": [ |
| { |
| "name": "fan3 rotor inventory", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "override_fan_target", |
| "count": 1, |
| "state": false, |
| "fans": ["fan3"], |
| "target": 11300 |
| } |
| ] |
| }, |
| { |
| // Hold fans at the given target when any critical service |
| // is not running for 5 seconds. |
| "name": "service(s) missing", |
| "groups": [ |
| { |
| "name": "fan inventory", |
| "interface": "xyz.openbmc_project.Inventory.Item", |
| "property": { "name": "Present" } |
| }, |
| { |
| "name": "occ objects", |
| "interface": "org.open_power.OCC.Status", |
| "property": { "name": "OccActive" } |
| }, |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "ambient temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "altitude", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "name_has_owner" |
| }, |
| { |
| "class": "signal", |
| "signal": "name_owner_changed" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "call_actions_based_on_timer", |
| "timer": { |
| "interval": 5000000, |
| "type": "oneshot" |
| }, |
| "actions": [ |
| { |
| "name": "set_target_on_missing_owner", |
| "groups": [ |
| { |
| "name": "fan inventory", |
| "interface": "xyz.openbmc_project.Inventory.Item", |
| "property": { "name": "Present" } |
| }, |
| { |
| "name": "occ objects", |
| "interface": "org.open_power.OCC.Status", |
| "property": { "name": "OccActive" } |
| }, |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "ambient temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "target": 9700 |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| // Set a fan floor if an OCC isn't active |
| "name": "Non-active OCC(s)", |
| "groups": [ |
| { |
| "name": "occ objects", |
| "interface": "org.open_power.OCC.Status", |
| "property": { |
| "name": "OccActive" |
| } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| }, |
| { |
| "class": "init", |
| "method": "get_properties" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "count_state_floor", |
| "count": 1, |
| "state": false, |
| "floor": 11300 |
| } |
| ] |
| }, |
| { |
| // Set a raised fan floor when any temperature or altitude sensor is |
| // nonfunctional |
| "name": "Nonfunctional temperature sensors", |
| "groups": [ |
| { |
| "name": "proc0 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc1 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc2 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc3 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc4 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc5 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc6 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc7 core temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc0 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc1 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc2 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc3 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc4 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc5 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc6 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "proc7 ioring temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "dram temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "pmic temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "internal memory buffer temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "dram and external memory buffer temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "external memory buffer temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "vdd vrm temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "ambient temp", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| }, |
| { |
| "name": "altitude", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_removed" |
| }, |
| { |
| "class": "init", |
| "method": "get_properties" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "count_state_floor", |
| "count": 1, |
| "state": false, |
| "delay": 5, |
| "floor": 11300 |
| } |
| ] |
| }, |
| { |
| "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_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_0_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "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_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_1_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 2 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 2 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_2_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_2_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 3 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 3 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_3_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_3_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 4 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 4 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_4_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_4_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 5 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 5 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_5_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_5_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 6 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 6 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_6_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_6_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 7 Core DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 7 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_7_core_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 7 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_7_core_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| } |
| ] |
| }, |
| { |
| "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_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_0_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "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_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_1_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 2 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 2 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_2_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_2_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 3 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 3 ioring dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_3_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_3_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 4 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 4 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_4_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_4_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 5 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 5 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_5_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_5_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 6 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 6 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_6_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_6_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set Proc 7 IO Ring DVFS parameter", |
| "groups": [ |
| { |
| "name": "proc 7 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_7_ioring_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "proc_7_ioring_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set DRAM DVFS parameter", |
| "groups": [ |
| { |
| "name": "dram dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "dram_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 8 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "dram_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 11 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set PMIC DVFS parameter", |
| "groups": [ |
| { |
| "name": "pmic dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "pmic_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "pmic_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set internal memory buffer DVFS parameter", |
| "groups": [ |
| { |
| "name": "internal memory buffer dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "intmb_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 9 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "intmb_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 12 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set DRAM and external memory buffer DVFS parameter", |
| "groups": [ |
| { |
| "name": "dram and external memory buffer dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "dram_extmb_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "dram_extmb_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Set external memory buffer DVFS parameter", |
| "groups": [ |
| { |
| "name": "external memory buffer dvfs temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "extmb_dvfs_increase_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 10 |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "extmb_dvfs_decrease_temp", |
| "modifier": { |
| "operator": "minus", |
| "value": 13 |
| } |
| } |
| ] |
| }, |
| { |
| // Collect group temperatures each iteration the repeating timer expires |
| "name": "Fan control timer loop", |
| "groups": [ |
| { |
| "name": "proc0 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc1 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc2 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc3 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc4 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc5 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc6 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc7 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc0 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc1 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc2 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc3 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc4 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc5 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc6 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "proc7 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "dram temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "pmic temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "internal memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "dram and external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "vdd vrm temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "timer", |
| "type": "repeating", |
| "interval": 2000000, |
| "preload_groups": true |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc0 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_0_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc1 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_1_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc2 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_2_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc3 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_3_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc4 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_4_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc5 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_5_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc6 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_6_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc7 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_7_core_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc0 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_0_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc1 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_1_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc2 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_2_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc3 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_3_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc4 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_4_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc5 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_5_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc6 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_6_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "proc7 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_7_ioring_dvfs_increase_temp", |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "dram temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "dram_dvfs_increase_temp", |
| "delta": 175 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "pmic temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "pmic_dvfs_increase_temp", |
| "delta": 200 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "internal memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "intmb_dvfs_increase_temp", |
| "delta": 150 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "dram and external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "dram_extmb_dvfs_increase_temp", |
| "delta": 200 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "extmb_dvfs_increase_temp", |
| "delta": 200 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "vdd vrm temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 85.0, |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 58.0, |
| "delta": 200 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 50.0, |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_increase_target", |
| "groups": [ |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 70.0, |
| "delta": 255 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc0 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_0_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc1 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_1_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc2 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_2_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc3 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_3_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc4 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_4_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc5 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_5_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc6 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_6_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc7 core temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_7_core_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc0 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc1 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc2 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc3 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc4 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc5 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc6 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "proc7 ioring temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp", |
| "delta": 50 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "dram temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "dram_dvfs_decrease_temp", |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "pmic temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "pmic_dvfs_decrease_temp", |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "internal memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "intmb_dvfs_decrease_temp", |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "dram and external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "dram_extmb_dvfs_decrease_temp", |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "external memory buffer temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state_parameter_name": "extmb_dvfs_decrease_temp", |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "vdd vrm temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 80.0, |
| "delta": 30 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 55.0, |
| "delta": 40 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "planar temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 48.0, |
| "delta": 80 |
| }, |
| { |
| "name": "set_net_decrease_target", |
| "groups": [ |
| { |
| "name": "pcie cable card temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "state": 65.0, |
| "delta": 80 |
| } |
| ] |
| }, |
| { |
| // Remove NVMe temperature objects from cache when they are removed from |
| // dbus. There's no need to react to their removal. |
| "name": "remove nvme objects", |
| "groups": [ |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| }, |
| { |
| "name": "nvme temps", |
| "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", |
| "property": { "name": "Functional" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "signal", |
| "signal": "interfaces_removed" |
| } |
| ] |
| }, |
| { |
| "name": "set pcie floor index", |
| "groups": [ |
| { |
| "name": "pcie slots", |
| "interface": "xyz.openbmc_project.State.Decorator.PowerState", |
| "property": { |
| "name": "PowerState" |
| } |
| }, |
| { |
| "name": "pcie cards", |
| "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", |
| "property": { |
| "name": "Function0DeviceId" |
| } |
| }, |
| { |
| "name": "pcie cards", |
| "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", |
| "property": { |
| "name": "Function0VendorId" |
| } |
| }, |
| { |
| "name": "pcie cards", |
| "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", |
| "property": { |
| "name": "Function0SubsystemId" |
| } |
| }, |
| { |
| "name": "pcie cards", |
| "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", |
| "property": { |
| "name": "Function0SubsystemVendorId" |
| } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "pcie_card_floors", |
| "use_config_specific_files": true, |
| "settle_time": 2 |
| } |
| ] |
| }, |
| { |
| "name": "Set altitude offset parameter", |
| "groups": [ |
| { |
| "name": "altitude", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| }, |
| { |
| // Refresh altitude every 24hrs |
| "class": "timer", |
| "type": "repeating", |
| "interval": 86400000000, |
| "preload_groups": true |
| } |
| ], |
| "actions": [ |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "ambient_20_altitude_offset", |
| "modifier": { |
| "operator": "less_than", |
| "default_value": 1500, |
| "value": [ |
| { "arg_value": 500, "parameter_value": 0 }, |
| { "arg_value": 1000, "parameter_value": 375 }, |
| { "arg_value": 1500, "parameter_value": 550 }, |
| { "arg_value": 2000, "parameter_value": 775 }, |
| { "arg_value": 2500, "parameter_value": 1000 }, |
| { "arg_value": 3050, "parameter_value": 1275 } |
| ] |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "ambient_25_altitude_offset", |
| "modifier": { |
| "operator": "less_than", |
| "default_value": 2000, |
| "value": [ |
| { "arg_value": 500, "parameter_value": 0 }, |
| { "arg_value": 1000, "parameter_value": 450 }, |
| { "arg_value": 1500, "parameter_value": 700 }, |
| { "arg_value": 2000, "parameter_value": 975 }, |
| { "arg_value": 2500, "parameter_value": 1275 }, |
| { "arg_value": 3050, "parameter_value": 1625 } |
| ] |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "ambient_30_altitude_offset", |
| "modifier": { |
| "operator": "less_than", |
| "default_value": 2500, |
| "value": [ |
| { "arg_value": 500, "parameter_value": 0 }, |
| { "arg_value": 1000, "parameter_value": 600 }, |
| { "arg_value": 1500, "parameter_value": 900 }, |
| { "arg_value": 2000, "parameter_value": 1275 }, |
| { "arg_value": 2500, "parameter_value": 1650 }, |
| { "arg_value": 3050, "parameter_value": 2100 } |
| ] |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "ambient_35_altitude_offset", |
| "modifier": { |
| "operator": "less_than", |
| "default_value": 3000, |
| "value": [ |
| { "arg_value": 500, "parameter_value": 0 }, |
| { "arg_value": 1000, "parameter_value": 750 }, |
| { "arg_value": 1500, "parameter_value": 1175 }, |
| { "arg_value": 2000, "parameter_value": 1625 }, |
| { "arg_value": 2500, "parameter_value": 2125 }, |
| { "arg_value": 3050, "parameter_value": 2725 } |
| ] |
| } |
| }, |
| { |
| "name": "set_parameter_from_group_max", |
| "parameter_name": "ambient_40_altitude_offset", |
| "modifier": { |
| "operator": "less_than", |
| "default_value": 3500, |
| "value": [ |
| { "arg_value": 500, "parameter_value": 0 }, |
| { "arg_value": 1000, "parameter_value": 975 }, |
| { "arg_value": 1500, "parameter_value": 1500 }, |
| { "arg_value": 2000, "parameter_value": 2100 }, |
| { "arg_value": 2500, "parameter_value": 2750 }, |
| { "arg_value": 3050, "parameter_value": 3500 } |
| ] |
| } |
| } |
| ] |
| }, |
| { |
| "name": "Fan floors", |
| "groups": [ |
| { |
| "name": "ambient temp", |
| "interface": "xyz.openbmc_project.Sensor.Value", |
| "property": { "name": "Value" } |
| } |
| ], |
| "triggers": [ |
| { |
| "class": "init", |
| "method": "get_properties" |
| }, |
| { |
| "class": "signal", |
| "signal": "properties_changed" |
| }, |
| { |
| "class": "signal", |
| "signal": "interfaces_added" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "pcie_floor_index" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "ambient_20_altitude_offset" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "ambient_25_altitude_offset" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "ambient_30_altitude_offset" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "ambient_35_altitude_offset" |
| }, |
| { |
| "class": "parameter", |
| "parameter": "ambient_40_altitude_offset" |
| } |
| ], |
| "actions": [ |
| { |
| "name": "mapped_floor", |
| "key_group": "ambient temp", |
| "fan_floors": [ |
| { |
| // Entry valid for temps < 20 |
| "key": 20, |
| "default_floor": 3800, |
| "floor_offset_parameter": "ambient_20_altitude_offset", |
| "floors": [ |
| { |
| "parameter": "pcie_floor_index", |
| "floors": [ |
| { "value": 1, "floor": 3800 }, |
| { "value": 2, "floor": 4200 }, |
| { "value": 3, "floor": 4600 } |
| ] |
| } |
| ] |
| }, |
| { |
| // Entry valid for temps < 25 |
| "key": 25, |
| "default_floor": 4400, |
| "floor_offset_parameter": "ambient_25_altitude_offset", |
| "floors": [ |
| { |
| "parameter": "pcie_floor_index", |
| "floors": [ |
| { "value": 1, "floor": 4400 }, |
| { "value": 2, "floor": 4800 }, |
| { "value": 3, "floor": 5400 } |
| ] |
| } |
| ] |
| }, |
| { |
| // Entry valid for temps < 30 |
| "key": 30, |
| "default_floor": 5000, |
| "floor_offset_parameter": "ambient_30_altitude_offset", |
| "floors": [ |
| { |
| "parameter": "pcie_floor_index", |
| "floors": [ |
| { "value": 1, "floor": 5000 }, |
| { "value": 2, "floor": 5600 }, |
| { "value": 3, "floor": 6500 } |
| ] |
| } |
| ] |
| }, |
| { |
| // Entry valid for temps < 35 |
| "key": 35, |
| "default_floor": 5800, |
| "floor_offset_parameter": "ambient_35_altitude_offset", |
| "floors": [ |
| { |
| "parameter": "pcie_floor_index", |
| "floors": [ |
| { "value": 1, "floor": 5800 }, |
| { "value": 2, "floor": 6700 }, |
| { "value": 3, "floor": 7700 } |
| ] |
| } |
| ] |
| }, |
| { |
| // Entry valid for temps < 40 |
| "key": 40, |
| "default_floor": 6900, |
| "floor_offset_parameter": "ambient_40_altitude_offset", |
| "floors": [ |
| { |
| "parameter": "pcie_floor_index", |
| "floors": [ |
| { "value": 1, "floor": 6900 }, |
| { "value": 2, "floor": 7900 }, |
| { "value": 3, "floor": 9200 } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |