[ { // 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": 18000 } ] }, { // 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" } }, { "name": "fan4 rotor inventory", "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", "property": { "name": "Functional" } }, { "name": "fan5 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": 1, "state": false, "target": 18000 } ] }, { // (for the following 6 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": 18000 } ] }, { "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": 18000 } ] }, { "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": 18000 } ] }, { "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": 18000 } ] }, { "name": "nonfunc rotor override-4", "groups": [ { "name": "fan4 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": ["fan4"], "target": 18000 } ] }, { "name": "nonfunc rotor override-5", "groups": [ { "name": "fan5 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": ["fan5"], "target": 18000 } ] }, { // 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": "flett 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": "flett 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": 18000 } ] } ] }, { // Set a fan floor if an OCC isn't active "name": "Non-active OCCs", "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": 18000 } ] }, { // 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": "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": "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": "flett 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": 18000 } ] }, { "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": 10 } }, { "name": "set_parameter_from_group_max", "parameter_name": "proc_0_core_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 13 } } ] }, { "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": 10 } }, { "name": "set_parameter_from_group_max", "parameter_name": "proc_1_core_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 13 } } ] }, { "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": 10 } }, { "name": "set_parameter_from_group_max", "parameter_name": "proc_2_core_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 13 } } ] }, { "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": 10 } }, { "name": "set_parameter_from_group_max", "parameter_name": "proc_3_core_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 13 } } ] }, { "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 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": 9 } }, { "name": "set_parameter_from_group_max", "parameter_name": "dram_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 12 } } ] }, { "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": 9 } }, { "name": "set_parameter_from_group_max", "parameter_name": "pmic_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 12 } } ] }, { "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": 10 } }, { "name": "set_parameter_from_group_max", "parameter_name": "intmb_dvfs_decrease_temp", "modifier": { "operator": "minus", "value": 13 } } ] }, { "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": "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": "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": "flett 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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 300 }, { "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": 100 }, { "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": 100 }, { "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": 100 }, { "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": 82.0, "delta": 300 }, { "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": 65.0, "delta": 255 }, { "name": "set_net_increase_target", "groups": [ { "name": "flett temps", "interface": "xyz.openbmc_project.Sensor.Value", "property": { "name": "Value" } } ], "state": 80.0, "delta": 200 }, { "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": "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": "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": 79.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": 60.0, "delta": 80 }, { "name": "set_net_decrease_target", "groups": [ { "name": "flett temps", "interface": "xyz.openbmc_project.Sensor.Value", "property": { "name": "Value" } } ], "state": 75.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": 10000, "value": [ { "arg_value": 500, "parameter_value": 0 }, { "arg_value": 1000, "parameter_value": 700 }, { "arg_value": 1500, "parameter_value": 1600 }, { "arg_value": 2000, "parameter_value": 2300 }, { "arg_value": 2500, "parameter_value": 3200 }, { "arg_value": 3300, "parameter_value": 4000 } ] } }, { "name": "set_parameter_from_group_max", "parameter_name": "ambient_25_altitude_offset", "modifier": { "operator": "less_than", "default_value": 10000, "value": [ { "arg_value": 500, "parameter_value": 0 }, { "arg_value": 1000, "parameter_value": 1000 }, { "arg_value": 1500, "parameter_value": 2100 }, { "arg_value": 2000, "parameter_value": 3100 }, { "arg_value": 2500, "parameter_value": 4100 }, { "arg_value": 3300, "parameter_value": 4900 } ] } }, { "name": "set_parameter_from_group_max", "parameter_name": "ambient_30_altitude_offset", "modifier": { "operator": "less_than", "default_value": 10000, "value": [ { "arg_value": 500, "parameter_value": 0 }, { "arg_value": 1000, "parameter_value": 1000 }, { "arg_value": 1500, "parameter_value": 2100 }, { "arg_value": 2000, "parameter_value": 3200 }, { "arg_value": 2500, "parameter_value": 4000 }, { "arg_value": 3300, "parameter_value": 4800 } ] } }, { "name": "set_parameter_from_group_max", "parameter_name": "ambient_35_altitude_offset", "modifier": { "operator": "less_than", "default_value": 10000, "value": [ { "arg_value": 500, "parameter_value": 0 }, { "arg_value": 1000, "parameter_value": 900 }, { "arg_value": 1500, "parameter_value": 1700 }, { "arg_value": 2000, "parameter_value": 2500 }, { "arg_value": 2500, "parameter_value": 3400 }, { "arg_value": 3300, "parameter_value": 4200 } ] } }, { "name": "set_parameter_from_group_max", "parameter_name": "ambient_40_altitude_offset", "modifier": { "operator": "less_than", "default_value": 10000, "value": [ { "arg_value": 500, "parameter_value": 0 }, { "arg_value": 1000, "parameter_value": 1000 }, { "arg_value": 1500, "parameter_value": 1900 }, { "arg_value": 2000, "parameter_value": 2800 }, { "arg_value": 2500, "parameter_value": 3700 }, { "arg_value": 3300, "parameter_value": 4500 } ] } } ] }, { "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": 5400, "floor_offset_parameter": "ambient_20_altitude_offset", "floors": [ { "parameter": "pcie_floor_index", "floors": [ { "value": 1, "floor": 5600 }, { "value": 2, "floor": 9000 }, { "value": 3, "floor": 9000 }, { "value": 4, "floor": 9200 }, { "value": 5, "floor": 10600 } ] } ] }, { // Entry valid for temps < 25 "key": 25, "default_floor": 7300, "floor_offset_parameter": "ambient_25_altitude_offset", "floors": [ { "parameter": "pcie_floor_index", "floors": [ { "value": 1, "floor": 7800 }, { "value": 2, "floor": 10700 }, { "value": 3, "floor": 11300 }, { "value": 4, "floor": 12700 }, { "value": 5, "floor": 13900 } ] } ] }, { // Entry valid for temps < 30 "key": 30, "default_floor": 9100, "floor_offset_parameter": "ambient_30_altitude_offset", "floors": [ { "parameter": "pcie_floor_index", "floors": [ { "value": 1, "floor": 10300 }, { "value": 2, "floor": 12100 }, { "value": 3, "floor": 14400 }, { "value": 4, "floor": 16300 }, { "value": 5, "floor": 17200 } ] } ] }, { // Entry valid for temps < 35 "key": 35, "default_floor": 10800, "floor_offset_parameter": "ambient_35_altitude_offset", "floors": [ { "parameter": "pcie_floor_index", "floors": [ { "value": 1, "floor": 12700 }, { "value": 2, "floor": 13500 }, { "value": 3, "floor": 17400 }, { "value": 4, "floor": 18000 }, { "value": 5, "floor": 18000 } ] } ] }, { // Entry valid for temps < 40 "key": 40, "default_floor": 12600, "floor_offset_parameter": "ambient_40_altitude_offset", "floors": [ { "parameter": "pcie_floor_index", "floors": [ { "value": 1, "floor": 15000 }, { "value": 2, "floor": 15500 }, { "value": 3, "floor": 18000 }, { "value": 4, "floor": 18000 }, { "value": 5, "floor": 18000 } ] } ] } ] } ] } ]