13420426cSMatt Spinler[ 23420426cSMatt Spinler { 33420426cSMatt Spinler // Hold fans at the given target when a number of fans are missing. 43420426cSMatt Spinler "name": "fan(s) missing", 53420426cSMatt Spinler "groups": [ 63420426cSMatt Spinler { 73420426cSMatt Spinler "name": "fan inventory", 83420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item", 93420426cSMatt Spinler "property": { "name": "Present" } 103420426cSMatt Spinler } 113420426cSMatt Spinler ], 123420426cSMatt Spinler "triggers": [ 133420426cSMatt Spinler { 143420426cSMatt Spinler "class": "init", 153420426cSMatt Spinler "method": "get_properties" 163420426cSMatt Spinler }, 173420426cSMatt Spinler { 183420426cSMatt Spinler "class": "signal", 193420426cSMatt Spinler "signal": "properties_changed" 203420426cSMatt Spinler } 213420426cSMatt Spinler ], 223420426cSMatt Spinler "actions": [ 233420426cSMatt Spinler { 243420426cSMatt Spinler "name": "count_state_before_target", 253420426cSMatt Spinler "count": 1, 263420426cSMatt Spinler "state": false, 273420426cSMatt Spinler "target": 18000 283420426cSMatt Spinler } 293420426cSMatt Spinler ] 303420426cSMatt Spinler }, 313420426cSMatt Spinler { 323420426cSMatt Spinler // Hold fans at the given target when a number of rotors are nonfunctional. 333420426cSMatt Spinler "name": "fan rotor(s) faulted", 343420426cSMatt Spinler "groups": [ 353420426cSMatt Spinler { 363420426cSMatt Spinler "name": "fan0 rotor inventory", 373420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 383420426cSMatt Spinler "property": { "name": "Functional" } 393420426cSMatt Spinler }, 403420426cSMatt Spinler { 413420426cSMatt Spinler "name": "fan1 rotor inventory", 423420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 433420426cSMatt Spinler "property": { "name": "Functional" } 443420426cSMatt Spinler } 453420426cSMatt Spinler ], 463420426cSMatt Spinler "triggers": [ 473420426cSMatt Spinler { 483420426cSMatt Spinler "class": "init", 493420426cSMatt Spinler "method": "get_properties" 503420426cSMatt Spinler }, 513420426cSMatt Spinler { 523420426cSMatt Spinler "class": "signal", 533420426cSMatt Spinler "signal": "properties_changed" 543420426cSMatt Spinler } 553420426cSMatt Spinler ], 563420426cSMatt Spinler "actions": [ 573420426cSMatt Spinler { 583420426cSMatt Spinler "name": "count_state_before_target", 593420426cSMatt Spinler "count": 1, 603420426cSMatt Spinler "state": false, 613420426cSMatt Spinler "target": 18000 623420426cSMatt Spinler } 633420426cSMatt Spinler ] 643420426cSMatt Spinler }, 653420426cSMatt Spinler { 663420426cSMatt Spinler // Hold fans at the given target when any critical service 673420426cSMatt Spinler // is not running for 5 seconds. 683420426cSMatt Spinler "name": "service(s) missing", 693420426cSMatt Spinler "groups": [ 703420426cSMatt Spinler { 713420426cSMatt Spinler "name": "fan inventory", 723420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item", 733420426cSMatt Spinler "property": { "name": "Present" } 743420426cSMatt Spinler }, 753420426cSMatt Spinler { 763420426cSMatt Spinler "name": "occ objects", 773420426cSMatt Spinler "interface": "org.open_power.OCC.Status", 783420426cSMatt Spinler "property": { "name": "OccActive" } 793420426cSMatt Spinler }, 803420426cSMatt Spinler { 813420426cSMatt Spinler "name": "nvme temps", 823420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 833420426cSMatt Spinler "property": { "name": "Value" } 843420426cSMatt Spinler }, 853420426cSMatt Spinler { 863420426cSMatt Spinler "name": "ambient temp", 873420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 883420426cSMatt Spinler "property": { "name": "Value" } 893420426cSMatt Spinler }, 903420426cSMatt Spinler { 913420426cSMatt Spinler "name": "altitude", 923420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 933420426cSMatt Spinler "property": { "name": "Value" } 943420426cSMatt Spinler } 953420426cSMatt Spinler ], 963420426cSMatt Spinler "triggers": [ 973420426cSMatt Spinler { 983420426cSMatt Spinler "class": "init", 993420426cSMatt Spinler "method": "name_has_owner" 1003420426cSMatt Spinler }, 1013420426cSMatt Spinler { 1023420426cSMatt Spinler "class": "signal", 1033420426cSMatt Spinler "signal": "name_owner_changed" 1043420426cSMatt Spinler } 1053420426cSMatt Spinler ], 1063420426cSMatt Spinler "actions": [ 1073420426cSMatt Spinler { 1083420426cSMatt Spinler "name": "call_actions_based_on_timer", 1093420426cSMatt Spinler "timer": { 1103420426cSMatt Spinler "interval": 5000000, 1113420426cSMatt Spinler "type": "oneshot" 1123420426cSMatt Spinler }, 1133420426cSMatt Spinler "actions": [ 1143420426cSMatt Spinler { 1153420426cSMatt Spinler "name": "set_target_on_missing_owner", 1163420426cSMatt Spinler "groups": [ 1173420426cSMatt Spinler { 1183420426cSMatt Spinler "name": "fan inventory", 1193420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item", 1203420426cSMatt Spinler "property": { "name": "Present" } 1213420426cSMatt Spinler }, 1223420426cSMatt Spinler { 1233420426cSMatt Spinler "name": "occ objects", 1243420426cSMatt Spinler "interface": "org.open_power.OCC.Status", 1253420426cSMatt Spinler "property": { "name": "OccActive" } 1263420426cSMatt Spinler }, 1273420426cSMatt Spinler { 1283420426cSMatt Spinler "name": "nvme temps", 1293420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 1303420426cSMatt Spinler "property": { "name": "Value" } 1313420426cSMatt Spinler }, 1323420426cSMatt Spinler { 1333420426cSMatt Spinler "name": "ambient temp", 1343420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 1353420426cSMatt Spinler "property": { "name": "Value" } 1363420426cSMatt Spinler }, 1373420426cSMatt Spinler { 1383420426cSMatt Spinler "name": "altitude", 1393420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 1403420426cSMatt Spinler "property": { "name": "Value" } 1413420426cSMatt Spinler } 1423420426cSMatt Spinler ], 1433420426cSMatt Spinler "target": 18000 1443420426cSMatt Spinler } 1453420426cSMatt Spinler ] 1463420426cSMatt Spinler } 1473420426cSMatt Spinler ] 1483420426cSMatt Spinler }, 1493420426cSMatt Spinler { 1503420426cSMatt Spinler // Set a fan floor if an OCC isn't active 1513420426cSMatt Spinler "name": "Non-active OCCs", 1523420426cSMatt Spinler "groups": [ 1533420426cSMatt Spinler { 1543420426cSMatt Spinler "name": "occ objects", 1553420426cSMatt Spinler "interface": "org.open_power.OCC.Status", 1563420426cSMatt Spinler "property": { 1573420426cSMatt Spinler "name": "OccActive" 1583420426cSMatt Spinler } 1593420426cSMatt Spinler } 1603420426cSMatt Spinler ], 1613420426cSMatt Spinler "triggers": [ 1623420426cSMatt Spinler { 1633420426cSMatt Spinler "class": "signal", 1643420426cSMatt Spinler "signal": "properties_changed" 1653420426cSMatt Spinler }, 1663420426cSMatt Spinler { 1673420426cSMatt Spinler "class": "signal", 1683420426cSMatt Spinler "signal": "interfaces_added" 1693420426cSMatt Spinler }, 1703420426cSMatt Spinler { 1713420426cSMatt Spinler "class": "init", 1723420426cSMatt Spinler "method": "get_properties" 1733420426cSMatt Spinler } 1743420426cSMatt Spinler ], 1753420426cSMatt Spinler "actions": [ 1763420426cSMatt Spinler { 1773420426cSMatt Spinler "name": "count_state_floor", 1783420426cSMatt Spinler "count": 1, 1793420426cSMatt Spinler "state": false, 1803420426cSMatt Spinler "floor": 18000 1813420426cSMatt Spinler } 1823420426cSMatt Spinler ] 1833420426cSMatt Spinler }, 1843420426cSMatt Spinler { 1853420426cSMatt Spinler // Set a raised fan floor when any temperature or altitude sensor is 1863420426cSMatt Spinler // nonfunctional 1873420426cSMatt Spinler "name": "Nonfunctional temperature sensors", 1883420426cSMatt Spinler "groups": [ 1893420426cSMatt Spinler { 1903420426cSMatt Spinler "name": "proc0 core temps", 1913420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 1923420426cSMatt Spinler "property": { "name": "Functional" } 1933420426cSMatt Spinler }, 1943420426cSMatt Spinler { 1953420426cSMatt Spinler "name": "proc0 ioring temp", 1963420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 1973420426cSMatt Spinler "property": { "name": "Functional" } 1983420426cSMatt Spinler }, 1993420426cSMatt Spinler { 2003420426cSMatt Spinler "name": "dram temps", 2013420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2023420426cSMatt Spinler "property": { "name": "Functional" } 2033420426cSMatt Spinler }, 2043420426cSMatt Spinler { 2053420426cSMatt Spinler "name": "internal memory buffer temps", 2063420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2073420426cSMatt Spinler "property": { "name": "Functional" } 2083420426cSMatt Spinler }, 2093420426cSMatt Spinler { 2103420426cSMatt Spinler "name": "vdd vrm temps", 2113420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2123420426cSMatt Spinler "property": { "name": "Functional" } 2133420426cSMatt Spinler }, 2143420426cSMatt Spinler { 2153420426cSMatt Spinler "name": "nvme temps", 2163420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2173420426cSMatt Spinler "property": { "name": "Functional" } 2183420426cSMatt Spinler }, 2193420426cSMatt Spinler { 2203420426cSMatt Spinler "name": "ambient temp", 2213420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2223420426cSMatt Spinler "property": { "name": "Functional" } 2233420426cSMatt Spinler }, 2243420426cSMatt Spinler { 2253420426cSMatt Spinler "name": "altitude", 2263420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2273420426cSMatt Spinler "property": { "name": "Functional" } 2283420426cSMatt Spinler } 2293420426cSMatt Spinler ], 2303420426cSMatt Spinler "triggers": [ 2313420426cSMatt Spinler { 2323420426cSMatt Spinler "class": "signal", 2333420426cSMatt Spinler "signal": "properties_changed" 2343420426cSMatt Spinler }, 2353420426cSMatt Spinler { 2363420426cSMatt Spinler "class": "signal", 2373420426cSMatt Spinler "signal": "interfaces_added" 2383420426cSMatt Spinler }, 2393420426cSMatt Spinler { 2403420426cSMatt Spinler "class": "signal", 2413420426cSMatt Spinler "signal": "interfaces_removed" 2423420426cSMatt Spinler }, 2433420426cSMatt Spinler { 2443420426cSMatt Spinler "class": "init", 2453420426cSMatt Spinler "method": "get_properties" 2463420426cSMatt Spinler } 2473420426cSMatt Spinler ], 2483420426cSMatt Spinler "actions": [ 2493420426cSMatt Spinler { 2503420426cSMatt Spinler "name": "count_state_floor", 2513420426cSMatt Spinler "count": 1, 2523420426cSMatt Spinler "state": false, 253*a8c1cf50SMatt Spinler "delay": 5, 2543420426cSMatt Spinler "floor": 18000 2553420426cSMatt Spinler } 2563420426cSMatt Spinler ] 2573420426cSMatt Spinler }, 2583420426cSMatt Spinler { 2593420426cSMatt Spinler "name": "Set Proc 0 Core DVFS parameter", 2603420426cSMatt Spinler "groups": [ 2613420426cSMatt Spinler { 2623420426cSMatt Spinler "name": "proc 0 core dvfs temp", 2633420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 2643420426cSMatt Spinler "property": { "name": "Value" } 2653420426cSMatt Spinler } 2663420426cSMatt Spinler ], 2673420426cSMatt Spinler "triggers": [ 2683420426cSMatt Spinler { 2693420426cSMatt Spinler "class": "init", 2703420426cSMatt Spinler "method": "get_properties" 2713420426cSMatt Spinler }, 2723420426cSMatt Spinler { 2733420426cSMatt Spinler "class": "signal", 2743420426cSMatt Spinler "signal": "interfaces_added" 2753420426cSMatt Spinler }, 2763420426cSMatt Spinler { 2773420426cSMatt Spinler "class": "signal", 2783420426cSMatt Spinler "signal": "properties_changed" 2793420426cSMatt Spinler } 2803420426cSMatt Spinler ], 2813420426cSMatt Spinler "actions": [ 2823420426cSMatt Spinler { 2833420426cSMatt Spinler "name": "set_parameter_from_group_max", 2843420426cSMatt Spinler "parameter_name": "proc_0_core_dvfs_increase_temp", 2853420426cSMatt Spinler "modifier": { 2863420426cSMatt Spinler "operator": "minus", 2873420426cSMatt Spinler "value": 10 2883420426cSMatt Spinler } 2893420426cSMatt Spinler }, 2903420426cSMatt Spinler { 2913420426cSMatt Spinler "name": "set_parameter_from_group_max", 2923420426cSMatt Spinler "parameter_name": "proc_0_core_dvfs_decrease_temp", 2933420426cSMatt Spinler "modifier": { 2943420426cSMatt Spinler "operator": "minus", 2953420426cSMatt Spinler "value": 13 2963420426cSMatt Spinler } 2973420426cSMatt Spinler } 2983420426cSMatt Spinler ] 2993420426cSMatt Spinler }, 3003420426cSMatt Spinler { 3013420426cSMatt Spinler "name": "Set Proc 0 IO Ring DVFS parameter", 3023420426cSMatt Spinler "groups": [ 3033420426cSMatt Spinler { 3043420426cSMatt Spinler "name": "proc 0 ioring dvfs temp", 3053420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3063420426cSMatt Spinler "property": { "name": "Value" } 3073420426cSMatt Spinler } 3083420426cSMatt Spinler ], 3093420426cSMatt Spinler "triggers": [ 3103420426cSMatt Spinler { 3113420426cSMatt Spinler "class": "init", 3123420426cSMatt Spinler "method": "get_properties" 3133420426cSMatt Spinler }, 3143420426cSMatt Spinler { 3153420426cSMatt Spinler "class": "signal", 3163420426cSMatt Spinler "signal": "interfaces_added" 3173420426cSMatt Spinler }, 3183420426cSMatt Spinler { 3193420426cSMatt Spinler "class": "signal", 3203420426cSMatt Spinler "signal": "properties_changed" 3213420426cSMatt Spinler } 3223420426cSMatt Spinler ], 3233420426cSMatt Spinler "actions": [ 3243420426cSMatt Spinler { 3253420426cSMatt Spinler "name": "set_parameter_from_group_max", 3263420426cSMatt Spinler "parameter_name": "proc_0_ioring_dvfs_increase_temp", 3273420426cSMatt Spinler "modifier": { 3283420426cSMatt Spinler "operator": "minus", 3293420426cSMatt Spinler "value": 10 3303420426cSMatt Spinler } 3313420426cSMatt Spinler }, 3323420426cSMatt Spinler { 3333420426cSMatt Spinler "name": "set_parameter_from_group_max", 3343420426cSMatt Spinler "parameter_name": "proc_0_ioring_dvfs_decrease_temp", 3353420426cSMatt Spinler "modifier": { 3363420426cSMatt Spinler "operator": "minus", 3373420426cSMatt Spinler "value": 13 3383420426cSMatt Spinler } 3393420426cSMatt Spinler } 3403420426cSMatt Spinler ] 3413420426cSMatt Spinler }, 3423420426cSMatt Spinler { 3433420426cSMatt Spinler // Collect group temperatures each iteration the repeating timer expires 3443420426cSMatt Spinler "name": "Fan control timer loop", 3453420426cSMatt Spinler "groups": [ 3463420426cSMatt Spinler { 3473420426cSMatt Spinler "name": "proc0 core temps", 3483420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3493420426cSMatt Spinler "property": { "name": "Value" } 3503420426cSMatt Spinler }, 3513420426cSMatt Spinler { 3523420426cSMatt Spinler "name": "proc0 ioring temp", 3533420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3543420426cSMatt Spinler "property": { "name": "Value" } 3553420426cSMatt Spinler }, 3563420426cSMatt Spinler { 3573420426cSMatt Spinler "name": "dram temps", 3583420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3593420426cSMatt Spinler "property": { "name": "Value" } 3603420426cSMatt Spinler }, 3613420426cSMatt Spinler { 3623420426cSMatt Spinler "name": "internal memory buffer temps", 3633420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3643420426cSMatt Spinler "property": { "name": "Value" } 3653420426cSMatt Spinler }, 3663420426cSMatt Spinler { 3673420426cSMatt Spinler "name": "vdd vrm temps", 3683420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3693420426cSMatt Spinler "property": { "name": "Value" } 3703420426cSMatt Spinler }, 3713420426cSMatt Spinler { 3723420426cSMatt Spinler "name": "nvme temps", 3733420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3743420426cSMatt Spinler "property": { "name": "Value" } 3753420426cSMatt Spinler } 3763420426cSMatt Spinler ], 3773420426cSMatt Spinler "triggers": [ 3783420426cSMatt Spinler { 3793420426cSMatt Spinler "class": "timer", 3803420426cSMatt Spinler "type": "repeating", 3813420426cSMatt Spinler "interval": 2000000, 3823420426cSMatt Spinler "preload_groups": true 3833420426cSMatt Spinler } 3843420426cSMatt Spinler ], 3853420426cSMatt Spinler "actions": [ 3863420426cSMatt Spinler { 3873420426cSMatt Spinler "name": "set_net_increase_target", 3883420426cSMatt Spinler "groups": [ 3893420426cSMatt Spinler { 3903420426cSMatt Spinler "name": "proc0 core temps", 3913420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3923420426cSMatt Spinler "property": { "name": "Value" } 3933420426cSMatt Spinler } 3943420426cSMatt Spinler ], 3953420426cSMatt Spinler "state_parameter_name": "proc_0_core_dvfs_increase_temp", 3963420426cSMatt Spinler "delta": 300 3973420426cSMatt Spinler }, 3983420426cSMatt Spinler { 3993420426cSMatt Spinler "name": "set_net_increase_target", 4003420426cSMatt Spinler "groups": [ 4013420426cSMatt Spinler { 4023420426cSMatt Spinler "name": "proc0 ioring temp", 4033420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4043420426cSMatt Spinler "property": { "name": "Value" } 4053420426cSMatt Spinler } 4063420426cSMatt Spinler ], 4073420426cSMatt Spinler "state_parameter_name": "proc_0_ioring_dvfs_increase_temp", 4083420426cSMatt Spinler "delta": 300 4093420426cSMatt Spinler }, 4103420426cSMatt Spinler { 4113420426cSMatt Spinler "name": "set_net_increase_target", 4123420426cSMatt Spinler "groups": [ 4133420426cSMatt Spinler { 4143420426cSMatt Spinler "name": "dram temps", 4153420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4163420426cSMatt Spinler "property": { "name": "Value" } 4173420426cSMatt Spinler } 4183420426cSMatt Spinler ], 4193420426cSMatt Spinler "state": 68.0, 4203420426cSMatt Spinler "delta": 100 4213420426cSMatt Spinler }, 4223420426cSMatt Spinler { 4233420426cSMatt Spinler "name": "set_net_increase_target", 4243420426cSMatt Spinler "groups": [ 4253420426cSMatt Spinler { 4263420426cSMatt Spinler "name": "internal memory buffer temps", 4273420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4283420426cSMatt Spinler "property": { "name": "Value" } 4293420426cSMatt Spinler } 4303420426cSMatt Spinler ], 4313420426cSMatt Spinler "state": 74.0, 4323420426cSMatt Spinler "delta": 100 4333420426cSMatt Spinler }, 4343420426cSMatt Spinler { 4353420426cSMatt Spinler "name": "set_net_increase_target", 4363420426cSMatt Spinler "groups": [ 4373420426cSMatt Spinler { 4383420426cSMatt Spinler "name": "vdd vrm temps", 4393420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4403420426cSMatt Spinler "property": { "name": "Value" } 4413420426cSMatt Spinler } 4423420426cSMatt Spinler ], 4433420426cSMatt Spinler "state": 82.0, 4443420426cSMatt Spinler "delta": 300 4453420426cSMatt Spinler }, 4463420426cSMatt Spinler { 4473420426cSMatt Spinler "name": "set_net_increase_target", 4483420426cSMatt Spinler "groups": [ 4493420426cSMatt Spinler { 4503420426cSMatt Spinler "name": "nvme temps", 4513420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4523420426cSMatt Spinler "property": { "name": "Value" } 4533420426cSMatt Spinler } 4543420426cSMatt Spinler ], 4553420426cSMatt Spinler "state": 58.0, 4563420426cSMatt Spinler "delta": 200 4573420426cSMatt Spinler }, 4583420426cSMatt Spinler { 4593420426cSMatt Spinler "name": "set_net_decrease_target", 4603420426cSMatt Spinler "groups": [ 4613420426cSMatt Spinler { 4623420426cSMatt Spinler "name": "proc0 core temps", 4633420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4643420426cSMatt Spinler "property": { "name": "Value" } 4653420426cSMatt Spinler } 4663420426cSMatt Spinler ], 4673420426cSMatt Spinler "state_parameter_name": "proc_0_core_dvfs_decrease_temp", 4683420426cSMatt Spinler "delta": 50 4693420426cSMatt Spinler }, 4703420426cSMatt Spinler { 4713420426cSMatt Spinler "name": "set_net_decrease_target", 4723420426cSMatt Spinler "groups": [ 4733420426cSMatt Spinler { 4743420426cSMatt Spinler "name": "proc0 ioring temp", 4753420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4763420426cSMatt Spinler "property": { "name": "Value" } 4773420426cSMatt Spinler } 4783420426cSMatt Spinler ], 4793420426cSMatt Spinler "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp", 4803420426cSMatt Spinler "delta": 50 4813420426cSMatt Spinler }, 4823420426cSMatt Spinler { 4833420426cSMatt Spinler "name": "set_net_decrease_target", 4843420426cSMatt Spinler "groups": [ 4853420426cSMatt Spinler { 4863420426cSMatt Spinler "name": "dram temps", 4873420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4883420426cSMatt Spinler "property": { "name": "Value" } 4893420426cSMatt Spinler } 4903420426cSMatt Spinler ], 4913420426cSMatt Spinler "state": 65.0, 4923420426cSMatt Spinler "delta": 40 4933420426cSMatt Spinler }, 4943420426cSMatt Spinler { 4953420426cSMatt Spinler "name": "set_net_decrease_target", 4963420426cSMatt Spinler "groups": [ 4973420426cSMatt Spinler { 4983420426cSMatt Spinler "name": "internal memory buffer temps", 4993420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5003420426cSMatt Spinler "property": { "name": "Value" } 5013420426cSMatt Spinler } 5023420426cSMatt Spinler ], 5033420426cSMatt Spinler "state": 71.0, 5043420426cSMatt Spinler "delta": 40 5053420426cSMatt Spinler }, 5063420426cSMatt Spinler { 5073420426cSMatt Spinler "name": "set_net_decrease_target", 5083420426cSMatt Spinler "groups": [ 5093420426cSMatt Spinler { 5103420426cSMatt Spinler "name": "vdd vrm temps", 5113420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5123420426cSMatt Spinler "property": { "name": "Value" } 5133420426cSMatt Spinler } 5143420426cSMatt Spinler ], 5153420426cSMatt Spinler "state": 79.0, 5163420426cSMatt Spinler "delta": 30 5173420426cSMatt Spinler }, 5183420426cSMatt Spinler { 5193420426cSMatt Spinler "name": "set_net_decrease_target", 5203420426cSMatt Spinler "groups": [ 5213420426cSMatt Spinler { 5223420426cSMatt Spinler "name": "nvme temps", 5233420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5243420426cSMatt Spinler "property": { "name": "Value" } 5253420426cSMatt Spinler } 5263420426cSMatt Spinler ], 5273420426cSMatt Spinler "state": 55.0, 5283420426cSMatt Spinler "delta": 40 5293420426cSMatt Spinler } 5303420426cSMatt Spinler ] 5313420426cSMatt Spinler }, 5323420426cSMatt Spinler { 5333420426cSMatt Spinler // Remove NVMe temperature objects from cache when they are removed from 5343420426cSMatt Spinler // dbus. There's no need to react to their removal. 5353420426cSMatt Spinler "name": "remove nvme objects", 5363420426cSMatt Spinler "groups": [ 5373420426cSMatt Spinler { 5383420426cSMatt Spinler "name": "nvme temps", 5393420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5403420426cSMatt Spinler "property": { "name": "Value" } 5413420426cSMatt Spinler }, 5423420426cSMatt Spinler { 5433420426cSMatt Spinler "name": "nvme temps", 5443420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 5453420426cSMatt Spinler "property": { "name": "Functional" } 5463420426cSMatt Spinler } 5473420426cSMatt Spinler ], 5483420426cSMatt Spinler "triggers": [ 5493420426cSMatt Spinler { 5503420426cSMatt Spinler "class": "signal", 5513420426cSMatt Spinler "signal": "interfaces_removed" 5523420426cSMatt Spinler } 5533420426cSMatt Spinler ] 5543420426cSMatt Spinler }, 5553420426cSMatt Spinler { 5563420426cSMatt Spinler "name": "set pcie floor index", 5573420426cSMatt Spinler "groups": [ 5583420426cSMatt Spinler { 5593420426cSMatt Spinler "name": "pcie slots", 5603420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.PowerState", 5613420426cSMatt Spinler "property": { 5623420426cSMatt Spinler "name": "PowerState" 5633420426cSMatt Spinler } 5643420426cSMatt Spinler }, 5653420426cSMatt Spinler { 5663420426cSMatt Spinler "name": "pcie cards", 5673420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 5683420426cSMatt Spinler "property": { 5693420426cSMatt Spinler "name": "Function0DeviceId" 5703420426cSMatt Spinler } 5713420426cSMatt Spinler }, 5723420426cSMatt Spinler { 5733420426cSMatt Spinler "name": "pcie cards", 5743420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 5753420426cSMatt Spinler "property": { 5763420426cSMatt Spinler "name": "Function0VendorId" 5773420426cSMatt Spinler } 5783420426cSMatt Spinler }, 5793420426cSMatt Spinler { 5803420426cSMatt Spinler "name": "pcie cards", 5813420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 5823420426cSMatt Spinler "property": { 5833420426cSMatt Spinler "name": "Function0SubsystemId" 5843420426cSMatt Spinler } 5853420426cSMatt Spinler }, 5863420426cSMatt Spinler { 5873420426cSMatt Spinler "name": "pcie cards", 5883420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 5893420426cSMatt Spinler "property": { 5903420426cSMatt Spinler "name": "Function0SubsystemVendorId" 5913420426cSMatt Spinler } 5923420426cSMatt Spinler } 5933420426cSMatt Spinler ], 5943420426cSMatt Spinler "triggers": [ 5953420426cSMatt Spinler { 5963420426cSMatt Spinler "class": "init", 5973420426cSMatt Spinler "method": "get_properties" 5983420426cSMatt Spinler }, 5993420426cSMatt Spinler { 6003420426cSMatt Spinler "class": "signal", 6013420426cSMatt Spinler "signal": "properties_changed" 6023420426cSMatt Spinler }, 6033420426cSMatt Spinler { 6043420426cSMatt Spinler "class": "signal", 6053420426cSMatt Spinler "signal": "interfaces_added" 6063420426cSMatt Spinler } 6073420426cSMatt Spinler ], 6083420426cSMatt Spinler "actions": [ 6093420426cSMatt Spinler { 6103420426cSMatt Spinler "name": "pcie_card_floors", 6113420426cSMatt Spinler "use_config_specific_files": true, 6123420426cSMatt Spinler "settle_time": 2 6133420426cSMatt Spinler } 6143420426cSMatt Spinler ] 6153420426cSMatt Spinler }, 6163420426cSMatt Spinler { 6173420426cSMatt Spinler "name": "Set altitude offset parameter", 6183420426cSMatt Spinler "groups": [ 6193420426cSMatt Spinler { 6203420426cSMatt Spinler "name": "altitude", 6213420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 6223420426cSMatt Spinler "property": { "name": "Value" } 6233420426cSMatt Spinler } 6243420426cSMatt Spinler ], 6253420426cSMatt Spinler "triggers": [ 6263420426cSMatt Spinler { 6273420426cSMatt Spinler "class": "init", 6283420426cSMatt Spinler "method": "get_properties" 6293420426cSMatt Spinler }, 6303420426cSMatt Spinler { 6313420426cSMatt Spinler "class": "signal", 6323420426cSMatt Spinler "signal": "interfaces_added" 6333420426cSMatt Spinler }, 6343420426cSMatt Spinler { 6353420426cSMatt Spinler // Refresh altitude every 24hrs 6363420426cSMatt Spinler "class": "timer", 6373420426cSMatt Spinler "type": "repeating", 6383420426cSMatt Spinler "interval": 86400000000, 6393420426cSMatt Spinler "preload_groups": true 6403420426cSMatt Spinler } 6413420426cSMatt Spinler ], 6423420426cSMatt Spinler "actions": [ 6433420426cSMatt Spinler { 6443420426cSMatt Spinler "name": "set_parameter_from_group_max", 6453420426cSMatt Spinler "parameter_name": "ambient_20_altitude_offset", 6463420426cSMatt Spinler "modifier": { 6473420426cSMatt Spinler "operator": "less_than", 6483420426cSMatt Spinler "default_value": 10000, 6493420426cSMatt Spinler "value": [ 6503420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 6513420426cSMatt Spinler { "arg_value": 1000, "parameter_value": 700 }, 6523420426cSMatt Spinler { "arg_value": 1500, "parameter_value": 1600 }, 6533420426cSMatt Spinler { "arg_value": 2000, "parameter_value": 2300 }, 6543420426cSMatt Spinler { "arg_value": 2500, "parameter_value": 3200 }, 6553420426cSMatt Spinler { "arg_value": 3300, "parameter_value": 4000 } 6563420426cSMatt Spinler ] 6573420426cSMatt Spinler } 6583420426cSMatt Spinler }, 6593420426cSMatt Spinler { 6603420426cSMatt Spinler "name": "set_parameter_from_group_max", 6613420426cSMatt Spinler "parameter_name": "ambient_25_altitude_offset", 6623420426cSMatt Spinler "modifier": { 6633420426cSMatt Spinler "operator": "less_than", 6643420426cSMatt Spinler "default_value": 10000, 6653420426cSMatt Spinler "value": [ 6663420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 6673420426cSMatt Spinler { "arg_value": 1000, "parameter_value": 1000 }, 6683420426cSMatt Spinler { "arg_value": 1500, "parameter_value": 2100 }, 6693420426cSMatt Spinler { "arg_value": 2000, "parameter_value": 3100 }, 6703420426cSMatt Spinler { "arg_value": 2500, "parameter_value": 4100 }, 6713420426cSMatt Spinler { "arg_value": 3300, "parameter_value": 4900 } 6723420426cSMatt Spinler ] 6733420426cSMatt Spinler } 6743420426cSMatt Spinler }, 6753420426cSMatt Spinler { 6763420426cSMatt Spinler "name": "set_parameter_from_group_max", 6773420426cSMatt Spinler "parameter_name": "ambient_30_altitude_offset", 6783420426cSMatt Spinler "modifier": { 6793420426cSMatt Spinler "operator": "less_than", 6803420426cSMatt Spinler "default_value": 10000, 6813420426cSMatt Spinler "value": [ 6823420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 6833420426cSMatt Spinler { "arg_value": 1000, "parameter_value": 1000 }, 6843420426cSMatt Spinler { "arg_value": 1500, "parameter_value": 2100 }, 6853420426cSMatt Spinler { "arg_value": 2000, "parameter_value": 3200 }, 6863420426cSMatt Spinler { "arg_value": 2500, "parameter_value": 4000 }, 6873420426cSMatt Spinler { "arg_value": 3300, "parameter_value": 4800 } 6883420426cSMatt Spinler ] 6893420426cSMatt Spinler } 6903420426cSMatt Spinler }, 6913420426cSMatt Spinler { 6923420426cSMatt Spinler "name": "set_parameter_from_group_max", 6933420426cSMatt Spinler "parameter_name": "ambient_35_altitude_offset", 6943420426cSMatt Spinler "modifier": { 6953420426cSMatt Spinler "operator": "less_than", 6963420426cSMatt Spinler "default_value": 10000, 6973420426cSMatt Spinler "value": [ 6983420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 6993420426cSMatt Spinler { "arg_value": 1000, "parameter_value": 900 }, 7003420426cSMatt Spinler { "arg_value": 1500, "parameter_value": 1700 }, 7013420426cSMatt Spinler { "arg_value": 2000, "parameter_value": 2500 }, 7023420426cSMatt Spinler { "arg_value": 2500, "parameter_value": 3400 }, 7033420426cSMatt Spinler { "arg_value": 3300, "parameter_value": 4200 } 7043420426cSMatt Spinler ] 7053420426cSMatt Spinler } 7063420426cSMatt Spinler }, 7073420426cSMatt Spinler { 7083420426cSMatt Spinler "name": "set_parameter_from_group_max", 7093420426cSMatt Spinler "parameter_name": "ambient_40_altitude_offset", 7103420426cSMatt Spinler "modifier": { 7113420426cSMatt Spinler "operator": "less_than", 7123420426cSMatt Spinler "default_value": 10000, 7133420426cSMatt Spinler "value": [ 7143420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 7153420426cSMatt Spinler { "arg_value": 1000, "parameter_value": 1000 }, 7163420426cSMatt Spinler { "arg_value": 1500, "parameter_value": 1900 }, 7173420426cSMatt Spinler { "arg_value": 2000, "parameter_value": 2800 }, 7183420426cSMatt Spinler { "arg_value": 2500, "parameter_value": 3700 }, 7193420426cSMatt Spinler { "arg_value": 3300, "parameter_value": 4500 } 7203420426cSMatt Spinler ] 7213420426cSMatt Spinler } 7223420426cSMatt Spinler } 7233420426cSMatt Spinler ] 7243420426cSMatt Spinler }, 7253420426cSMatt Spinler { 7263420426cSMatt Spinler "name": "Fan floors", 7273420426cSMatt Spinler "groups": [ 7283420426cSMatt Spinler { 7293420426cSMatt Spinler "name": "ambient temp", 7303420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 7313420426cSMatt Spinler "property": { "name": "Value" } 7323420426cSMatt Spinler } 7333420426cSMatt Spinler ], 7343420426cSMatt Spinler "triggers": [ 7353420426cSMatt Spinler { 7363420426cSMatt Spinler "class": "init", 7373420426cSMatt Spinler "method": "get_properties" 7383420426cSMatt Spinler }, 7393420426cSMatt Spinler { 7403420426cSMatt Spinler "class": "signal", 7413420426cSMatt Spinler "signal": "properties_changed" 7423420426cSMatt Spinler }, 7433420426cSMatt Spinler { 7443420426cSMatt Spinler "class": "signal", 7453420426cSMatt Spinler "signal": "interfaces_added" 7463420426cSMatt Spinler }, 7473420426cSMatt Spinler { 7483420426cSMatt Spinler "class": "parameter", 7493420426cSMatt Spinler "parameter": "pcie_floor_index" 7503420426cSMatt Spinler }, 7513420426cSMatt Spinler { 7523420426cSMatt Spinler "class": "parameter", 7533420426cSMatt Spinler "parameter": "ambient_20_altitude_offset" 7543420426cSMatt Spinler }, 7553420426cSMatt Spinler { 7563420426cSMatt Spinler "class": "parameter", 7573420426cSMatt Spinler "parameter": "ambient_25_altitude_offset" 7583420426cSMatt Spinler }, 7593420426cSMatt Spinler { 7603420426cSMatt Spinler "class": "parameter", 7613420426cSMatt Spinler "parameter": "ambient_30_altitude_offset" 7623420426cSMatt Spinler }, 7633420426cSMatt Spinler { 7643420426cSMatt Spinler "class": "parameter", 7653420426cSMatt Spinler "parameter": "ambient_35_altitude_offset" 7663420426cSMatt Spinler }, 7673420426cSMatt Spinler { 7683420426cSMatt Spinler "class": "parameter", 7693420426cSMatt Spinler "parameter": "ambient_40_altitude_offset" 7703420426cSMatt Spinler } 7713420426cSMatt Spinler ], 7723420426cSMatt Spinler "actions": [ 7733420426cSMatt Spinler { 7743420426cSMatt Spinler "name": "mapped_floor", 7753420426cSMatt Spinler "key_group": "ambient temp", 7763420426cSMatt Spinler "fan_floors": [ 7773420426cSMatt Spinler { 7783420426cSMatt Spinler // Entry valid for temps < 20 7793420426cSMatt Spinler "key": 20, 7803420426cSMatt Spinler "default_floor": 5400, 7813420426cSMatt Spinler "floor_offset_parameter": "ambient_20_altitude_offset", 7823420426cSMatt Spinler "floors": [ 7833420426cSMatt Spinler { 7843420426cSMatt Spinler "parameter": "pcie_floor_index", 7853420426cSMatt Spinler "floors": [ 7863420426cSMatt Spinler { "value": 1, "floor": 5600 }, 7873420426cSMatt Spinler { "value": 2, "floor": 9000 }, 7883420426cSMatt Spinler { "value": 3, "floor": 9000 }, 7893420426cSMatt Spinler { "value": 4, "floor": 9200 }, 7903420426cSMatt Spinler { "value": 5, "floor": 10600 } 7913420426cSMatt Spinler ] 7923420426cSMatt Spinler } 7933420426cSMatt Spinler ] 7943420426cSMatt Spinler }, 7953420426cSMatt Spinler { 7963420426cSMatt Spinler // Entry valid for temps < 25 7973420426cSMatt Spinler "key": 25, 7983420426cSMatt Spinler "default_floor": 6500, 7993420426cSMatt Spinler "floor_offset_parameter": "ambient_25_altitude_offset", 8003420426cSMatt Spinler "floors": [ 8013420426cSMatt Spinler { 8023420426cSMatt Spinler "parameter": "pcie_floor_index", 8033420426cSMatt Spinler "floors": [ 8043420426cSMatt Spinler { "value": 1, "floor": 7800 }, 8053420426cSMatt Spinler { "value": 2, "floor": 10700 }, 8063420426cSMatt Spinler { "value": 3, "floor": 11300 }, 8073420426cSMatt Spinler { "value": 4, "floor": 12700 }, 8083420426cSMatt Spinler { "value": 5, "floor": 13900 } 8093420426cSMatt Spinler ] 8103420426cSMatt Spinler } 8113420426cSMatt Spinler ] 8123420426cSMatt Spinler }, 8133420426cSMatt Spinler { 8143420426cSMatt Spinler // Entry valid for temps < 30 8153420426cSMatt Spinler "key": 30, 8163420426cSMatt Spinler "default_floor": 6500, 8173420426cSMatt Spinler "floor_offset_parameter": "ambient_30_altitude_offset", 8183420426cSMatt Spinler "floors": [ 8193420426cSMatt Spinler { 8203420426cSMatt Spinler "parameter": "pcie_floor_index", 8213420426cSMatt Spinler "floors": [ 8223420426cSMatt Spinler { "value": 1, "floor": 10300 }, 8233420426cSMatt Spinler { "value": 2, "floor": 12100 }, 8243420426cSMatt Spinler { "value": 3, "floor": 14400 }, 8253420426cSMatt Spinler { "value": 4, "floor": 16300 }, 8263420426cSMatt Spinler { "value": 5, "floor": 17200 } 8273420426cSMatt Spinler ] 8283420426cSMatt Spinler } 8293420426cSMatt Spinler ] 8303420426cSMatt Spinler }, 8313420426cSMatt Spinler { 8323420426cSMatt Spinler // Entry valid for temps < 35 8333420426cSMatt Spinler "key": 35, 8343420426cSMatt Spinler "default_floor": 8500, 8353420426cSMatt Spinler "floor_offset_parameter": "ambient_35_altitude_offset", 8363420426cSMatt Spinler "floors": [ 8373420426cSMatt Spinler { 8383420426cSMatt Spinler "parameter": "pcie_floor_index", 8393420426cSMatt Spinler "floors": [ 8403420426cSMatt Spinler { "value": 1, "floor": 12700 }, 8413420426cSMatt Spinler { "value": 2, "floor": 13500 }, 8423420426cSMatt Spinler { "value": 3, "floor": 17400 }, 8433420426cSMatt Spinler { "value": 4, "floor": 18000 }, 8443420426cSMatt Spinler { "value": 5, "floor": 18000 } 8453420426cSMatt Spinler ] 8463420426cSMatt Spinler } 8473420426cSMatt Spinler ] 8483420426cSMatt Spinler }, 8493420426cSMatt Spinler { 8503420426cSMatt Spinler // Entry valid for temps < 40 8513420426cSMatt Spinler "key": 40, 8523420426cSMatt Spinler "default_floor": 12600, 8533420426cSMatt Spinler "floor_offset_parameter": "ambient_40_altitude_offset", 8543420426cSMatt Spinler "floors": [ 8553420426cSMatt Spinler { 8563420426cSMatt Spinler "parameter": "pcie_floor_index", 8573420426cSMatt Spinler "floors": [ 8583420426cSMatt Spinler { "value": 1, "floor": 15000 }, 8593420426cSMatt Spinler { "value": 2, "floor": 15500 }, 8603420426cSMatt Spinler { "value": 3, "floor": 18000 }, 8613420426cSMatt Spinler { "value": 4, "floor": 18000 }, 8623420426cSMatt Spinler { "value": 5, "floor": 18000 } 8633420426cSMatt Spinler ] 8643420426cSMatt Spinler } 8653420426cSMatt Spinler ] 8663420426cSMatt Spinler } 8673420426cSMatt Spinler ] 8683420426cSMatt Spinler } 8693420426cSMatt Spinler ] 8703420426cSMatt Spinler } 8713420426cSMatt Spinler] 872