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, 27338b3e3dSMatt Spinler "target": 17000 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, 61338b3e3dSMatt Spinler "target": 17000 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": "signal", 993420426cSMatt Spinler "signal": "name_owner_changed" 100*6ef0d514SMatt Spinler }, 101*6ef0d514SMatt Spinler { 102*6ef0d514SMatt Spinler "class": "init", 103*6ef0d514SMatt Spinler "method": "name_has_owner" 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 ], 143338b3e3dSMatt Spinler "target": 17000 1443420426cSMatt Spinler } 1453420426cSMatt Spinler ] 1463420426cSMatt Spinler } 1473420426cSMatt Spinler ] 1483420426cSMatt Spinler }, 1493420426cSMatt Spinler { 150*6ef0d514SMatt Spinler "name": "Force retry on the OCC status objects", 151*6ef0d514SMatt Spinler "groups": [ 152*6ef0d514SMatt Spinler { 153*6ef0d514SMatt Spinler "name": "occ objects", 154*6ef0d514SMatt Spinler "interface": "org.open_power.OCC.Status", 155*6ef0d514SMatt Spinler "property": { "name": "OccActive" } 156*6ef0d514SMatt Spinler } 157*6ef0d514SMatt Spinler ], 158*6ef0d514SMatt Spinler "triggers": [ 159*6ef0d514SMatt Spinler { 160*6ef0d514SMatt Spinler "class": "timer", 161*6ef0d514SMatt Spinler "type": "oneshot", 162*6ef0d514SMatt Spinler "interval": 30000000, 163*6ef0d514SMatt Spinler "preload_groups": true 164*6ef0d514SMatt Spinler } 165*6ef0d514SMatt Spinler ], 166*6ef0d514SMatt Spinler "actions": [ 167*6ef0d514SMatt Spinler { 168*6ef0d514SMatt Spinler "name": "set_target_on_missing_owner", 169*6ef0d514SMatt Spinler "groups": [ 170*6ef0d514SMatt Spinler { 171*6ef0d514SMatt Spinler "name": "occ objects", 172*6ef0d514SMatt Spinler "interface": "org.open_power.OCC.Status", 173*6ef0d514SMatt Spinler "property": { "name": "OccActive" } 174*6ef0d514SMatt Spinler } 175*6ef0d514SMatt Spinler ], 176*6ef0d514SMatt Spinler "target": 17000 177*6ef0d514SMatt Spinler } 178*6ef0d514SMatt Spinler ] 179*6ef0d514SMatt Spinler }, 180*6ef0d514SMatt Spinler { 1813420426cSMatt Spinler // Set a fan floor if an OCC isn't active 1823420426cSMatt Spinler "name": "Non-active OCCs", 1833420426cSMatt Spinler "groups": [ 1843420426cSMatt Spinler { 1853420426cSMatt Spinler "name": "occ objects", 1863420426cSMatt Spinler "interface": "org.open_power.OCC.Status", 1873420426cSMatt Spinler "property": { 1883420426cSMatt Spinler "name": "OccActive" 1893420426cSMatt Spinler } 1903420426cSMatt Spinler } 1913420426cSMatt Spinler ], 1923420426cSMatt Spinler "triggers": [ 1933420426cSMatt Spinler { 1943420426cSMatt Spinler "class": "signal", 1953420426cSMatt Spinler "signal": "properties_changed" 1963420426cSMatt Spinler }, 1973420426cSMatt Spinler { 1983420426cSMatt Spinler "class": "signal", 1993420426cSMatt Spinler "signal": "interfaces_added" 2003420426cSMatt Spinler }, 2013420426cSMatt Spinler { 2023420426cSMatt Spinler "class": "init", 2033420426cSMatt Spinler "method": "get_properties" 2043420426cSMatt Spinler } 2053420426cSMatt Spinler ], 2063420426cSMatt Spinler "actions": [ 2073420426cSMatt Spinler { 2083420426cSMatt Spinler "name": "count_state_floor", 2093420426cSMatt Spinler "count": 1, 2103420426cSMatt Spinler "state": false, 211338b3e3dSMatt Spinler "floor": 17000 2123420426cSMatt Spinler } 2133420426cSMatt Spinler ] 2143420426cSMatt Spinler }, 2153420426cSMatt Spinler { 2163420426cSMatt Spinler // Set a raised fan floor when any temperature or altitude sensor is 2173420426cSMatt Spinler // nonfunctional 2183420426cSMatt Spinler "name": "Nonfunctional temperature sensors", 2193420426cSMatt Spinler "groups": [ 2203420426cSMatt Spinler { 2213420426cSMatt Spinler "name": "proc0 core temps", 2223420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2233420426cSMatt Spinler "property": { "name": "Functional" } 2243420426cSMatt Spinler }, 2253420426cSMatt Spinler { 2263420426cSMatt Spinler "name": "proc0 ioring temp", 2273420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2283420426cSMatt Spinler "property": { "name": "Functional" } 2293420426cSMatt Spinler }, 2303420426cSMatt Spinler { 2313420426cSMatt Spinler "name": "dram temps", 2323420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2333420426cSMatt Spinler "property": { "name": "Functional" } 2343420426cSMatt Spinler }, 2353420426cSMatt Spinler { 2363420426cSMatt Spinler "name": "internal memory buffer temps", 2373420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2383420426cSMatt Spinler "property": { "name": "Functional" } 2393420426cSMatt Spinler }, 2403420426cSMatt Spinler { 2413420426cSMatt Spinler "name": "vdd vrm temps", 2423420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2433420426cSMatt Spinler "property": { "name": "Functional" } 2443420426cSMatt Spinler }, 2453420426cSMatt Spinler { 2463420426cSMatt Spinler "name": "nvme temps", 2473420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2483420426cSMatt Spinler "property": { "name": "Functional" } 2493420426cSMatt Spinler }, 2503420426cSMatt Spinler { 2513420426cSMatt Spinler "name": "ambient temp", 2523420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2533420426cSMatt Spinler "property": { "name": "Functional" } 2543420426cSMatt Spinler }, 2553420426cSMatt Spinler { 2563420426cSMatt Spinler "name": "altitude", 2573420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 2583420426cSMatt Spinler "property": { "name": "Functional" } 2593420426cSMatt Spinler } 2603420426cSMatt Spinler ], 2613420426cSMatt Spinler "triggers": [ 2623420426cSMatt Spinler { 2633420426cSMatt Spinler "class": "signal", 2643420426cSMatt Spinler "signal": "properties_changed" 2653420426cSMatt Spinler }, 2663420426cSMatt Spinler { 2673420426cSMatt Spinler "class": "signal", 2683420426cSMatt Spinler "signal": "interfaces_added" 2693420426cSMatt Spinler }, 2703420426cSMatt Spinler { 2713420426cSMatt Spinler "class": "signal", 2723420426cSMatt Spinler "signal": "interfaces_removed" 2733420426cSMatt Spinler }, 2743420426cSMatt Spinler { 2753420426cSMatt Spinler "class": "init", 2763420426cSMatt Spinler "method": "get_properties" 2773420426cSMatt Spinler } 2783420426cSMatt Spinler ], 2793420426cSMatt Spinler "actions": [ 2803420426cSMatt Spinler { 2813420426cSMatt Spinler "name": "count_state_floor", 2823420426cSMatt Spinler "count": 1, 2833420426cSMatt Spinler "state": false, 284a8c1cf50SMatt Spinler "delay": 5, 285338b3e3dSMatt Spinler "floor": 17000 2863420426cSMatt Spinler } 2873420426cSMatt Spinler ] 2883420426cSMatt Spinler }, 2893420426cSMatt Spinler { 2903420426cSMatt Spinler "name": "Set Proc 0 Core DVFS parameter", 2913420426cSMatt Spinler "groups": [ 2923420426cSMatt Spinler { 2933420426cSMatt Spinler "name": "proc 0 core dvfs temp", 2943420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 2953420426cSMatt Spinler "property": { "name": "Value" } 2963420426cSMatt Spinler } 2973420426cSMatt Spinler ], 2983420426cSMatt Spinler "triggers": [ 2993420426cSMatt Spinler { 3003420426cSMatt Spinler "class": "init", 3013420426cSMatt Spinler "method": "get_properties" 3023420426cSMatt Spinler }, 3033420426cSMatt Spinler { 3043420426cSMatt Spinler "class": "signal", 3053420426cSMatt Spinler "signal": "interfaces_added" 3063420426cSMatt Spinler }, 3073420426cSMatt Spinler { 3083420426cSMatt Spinler "class": "signal", 3093420426cSMatt Spinler "signal": "properties_changed" 3103420426cSMatt Spinler } 3113420426cSMatt Spinler ], 3123420426cSMatt Spinler "actions": [ 3133420426cSMatt Spinler { 3143420426cSMatt Spinler "name": "set_parameter_from_group_max", 3153420426cSMatt Spinler "parameter_name": "proc_0_core_dvfs_increase_temp", 3163420426cSMatt Spinler "modifier": { 3173420426cSMatt Spinler "operator": "minus", 3183420426cSMatt Spinler "value": 10 3193420426cSMatt Spinler } 3203420426cSMatt Spinler }, 3213420426cSMatt Spinler { 3223420426cSMatt Spinler "name": "set_parameter_from_group_max", 3233420426cSMatt Spinler "parameter_name": "proc_0_core_dvfs_decrease_temp", 3243420426cSMatt Spinler "modifier": { 3253420426cSMatt Spinler "operator": "minus", 3263420426cSMatt Spinler "value": 13 3273420426cSMatt Spinler } 3283420426cSMatt Spinler } 3293420426cSMatt Spinler ] 3303420426cSMatt Spinler }, 3313420426cSMatt Spinler { 3323420426cSMatt Spinler "name": "Set Proc 0 IO Ring DVFS parameter", 3333420426cSMatt Spinler "groups": [ 3343420426cSMatt Spinler { 3353420426cSMatt Spinler "name": "proc 0 ioring dvfs temp", 3363420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3373420426cSMatt Spinler "property": { "name": "Value" } 3383420426cSMatt Spinler } 3393420426cSMatt Spinler ], 3403420426cSMatt Spinler "triggers": [ 3413420426cSMatt Spinler { 3423420426cSMatt Spinler "class": "init", 3433420426cSMatt Spinler "method": "get_properties" 3443420426cSMatt Spinler }, 3453420426cSMatt Spinler { 3463420426cSMatt Spinler "class": "signal", 3473420426cSMatt Spinler "signal": "interfaces_added" 3483420426cSMatt Spinler }, 3493420426cSMatt Spinler { 3503420426cSMatt Spinler "class": "signal", 3513420426cSMatt Spinler "signal": "properties_changed" 3523420426cSMatt Spinler } 3533420426cSMatt Spinler ], 3543420426cSMatt Spinler "actions": [ 3553420426cSMatt Spinler { 3563420426cSMatt Spinler "name": "set_parameter_from_group_max", 3573420426cSMatt Spinler "parameter_name": "proc_0_ioring_dvfs_increase_temp", 3583420426cSMatt Spinler "modifier": { 3593420426cSMatt Spinler "operator": "minus", 3603420426cSMatt Spinler "value": 10 3613420426cSMatt Spinler } 3623420426cSMatt Spinler }, 3633420426cSMatt Spinler { 3643420426cSMatt Spinler "name": "set_parameter_from_group_max", 3653420426cSMatt Spinler "parameter_name": "proc_0_ioring_dvfs_decrease_temp", 3663420426cSMatt Spinler "modifier": { 3673420426cSMatt Spinler "operator": "minus", 3683420426cSMatt Spinler "value": 13 3693420426cSMatt Spinler } 3703420426cSMatt Spinler } 3713420426cSMatt Spinler ] 3723420426cSMatt Spinler }, 3733420426cSMatt Spinler { 3743420426cSMatt Spinler // Collect group temperatures each iteration the repeating timer expires 3753420426cSMatt Spinler "name": "Fan control timer loop", 3763420426cSMatt Spinler "groups": [ 3773420426cSMatt Spinler { 3783420426cSMatt Spinler "name": "proc0 core temps", 3793420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3803420426cSMatt Spinler "property": { "name": "Value" } 3813420426cSMatt Spinler }, 3823420426cSMatt Spinler { 3833420426cSMatt Spinler "name": "proc0 ioring temp", 3843420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3853420426cSMatt Spinler "property": { "name": "Value" } 3863420426cSMatt Spinler }, 3873420426cSMatt Spinler { 3883420426cSMatt Spinler "name": "dram temps", 3893420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3903420426cSMatt Spinler "property": { "name": "Value" } 3913420426cSMatt Spinler }, 3923420426cSMatt Spinler { 3933420426cSMatt Spinler "name": "internal memory buffer temps", 3943420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 3953420426cSMatt Spinler "property": { "name": "Value" } 3963420426cSMatt Spinler }, 3973420426cSMatt Spinler { 3983420426cSMatt Spinler "name": "vdd vrm temps", 3993420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4003420426cSMatt Spinler "property": { "name": "Value" } 4013420426cSMatt Spinler }, 4023420426cSMatt Spinler { 4033420426cSMatt Spinler "name": "nvme temps", 4043420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4053420426cSMatt Spinler "property": { "name": "Value" } 4063420426cSMatt Spinler } 4073420426cSMatt Spinler ], 4083420426cSMatt Spinler "triggers": [ 4093420426cSMatt Spinler { 4103420426cSMatt Spinler "class": "timer", 4113420426cSMatt Spinler "type": "repeating", 4123420426cSMatt Spinler "interval": 2000000, 4133420426cSMatt Spinler "preload_groups": true 4143420426cSMatt Spinler } 4153420426cSMatt Spinler ], 4163420426cSMatt Spinler "actions": [ 4173420426cSMatt Spinler { 4183420426cSMatt Spinler "name": "set_net_increase_target", 4193420426cSMatt Spinler "groups": [ 4203420426cSMatt Spinler { 4213420426cSMatt Spinler "name": "proc0 core temps", 4223420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4233420426cSMatt Spinler "property": { "name": "Value" } 4243420426cSMatt Spinler } 4253420426cSMatt Spinler ], 4263420426cSMatt Spinler "state_parameter_name": "proc_0_core_dvfs_increase_temp", 4273420426cSMatt Spinler "delta": 300 4283420426cSMatt Spinler }, 4293420426cSMatt Spinler { 4303420426cSMatt Spinler "name": "set_net_increase_target", 4313420426cSMatt Spinler "groups": [ 4323420426cSMatt Spinler { 4333420426cSMatt Spinler "name": "proc0 ioring temp", 4343420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4353420426cSMatt Spinler "property": { "name": "Value" } 4363420426cSMatt Spinler } 4373420426cSMatt Spinler ], 4383420426cSMatt Spinler "state_parameter_name": "proc_0_ioring_dvfs_increase_temp", 4393420426cSMatt Spinler "delta": 300 4403420426cSMatt Spinler }, 4413420426cSMatt Spinler { 4423420426cSMatt Spinler "name": "set_net_increase_target", 4433420426cSMatt Spinler "groups": [ 4443420426cSMatt Spinler { 4453420426cSMatt Spinler "name": "dram temps", 4463420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4473420426cSMatt Spinler "property": { "name": "Value" } 4483420426cSMatt Spinler } 4493420426cSMatt Spinler ], 4508ef2c86bSMatt Spinler "state": 64.0, 4513420426cSMatt Spinler "delta": 100 4523420426cSMatt Spinler }, 4533420426cSMatt Spinler { 4543420426cSMatt Spinler "name": "set_net_increase_target", 4553420426cSMatt Spinler "groups": [ 4563420426cSMatt Spinler { 4573420426cSMatt Spinler "name": "internal memory buffer temps", 4583420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4593420426cSMatt Spinler "property": { "name": "Value" } 4603420426cSMatt Spinler } 4613420426cSMatt Spinler ], 4623420426cSMatt Spinler "state": 74.0, 4633420426cSMatt Spinler "delta": 100 4643420426cSMatt Spinler }, 4653420426cSMatt Spinler { 4663420426cSMatt Spinler "name": "set_net_increase_target", 4673420426cSMatt Spinler "groups": [ 4683420426cSMatt Spinler { 4693420426cSMatt Spinler "name": "vdd vrm temps", 4703420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4713420426cSMatt Spinler "property": { "name": "Value" } 4723420426cSMatt Spinler } 4733420426cSMatt Spinler ], 4743420426cSMatt Spinler "state": 82.0, 4753420426cSMatt Spinler "delta": 300 4763420426cSMatt Spinler }, 4773420426cSMatt Spinler { 4783420426cSMatt Spinler "name": "set_net_increase_target", 4793420426cSMatt Spinler "groups": [ 4803420426cSMatt Spinler { 4813420426cSMatt Spinler "name": "nvme temps", 4823420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4833420426cSMatt Spinler "property": { "name": "Value" } 4843420426cSMatt Spinler } 4853420426cSMatt Spinler ], 4863420426cSMatt Spinler "state": 58.0, 4873420426cSMatt Spinler "delta": 200 4883420426cSMatt Spinler }, 4893420426cSMatt Spinler { 4903420426cSMatt Spinler "name": "set_net_decrease_target", 4913420426cSMatt Spinler "groups": [ 4923420426cSMatt Spinler { 4933420426cSMatt Spinler "name": "proc0 core temps", 4943420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 4953420426cSMatt Spinler "property": { "name": "Value" } 4963420426cSMatt Spinler } 4973420426cSMatt Spinler ], 4983420426cSMatt Spinler "state_parameter_name": "proc_0_core_dvfs_decrease_temp", 4993420426cSMatt Spinler "delta": 50 5003420426cSMatt Spinler }, 5013420426cSMatt Spinler { 5023420426cSMatt Spinler "name": "set_net_decrease_target", 5033420426cSMatt Spinler "groups": [ 5043420426cSMatt Spinler { 5053420426cSMatt Spinler "name": "proc0 ioring temp", 5063420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5073420426cSMatt Spinler "property": { "name": "Value" } 5083420426cSMatt Spinler } 5093420426cSMatt Spinler ], 5103420426cSMatt Spinler "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp", 5113420426cSMatt Spinler "delta": 50 5123420426cSMatt Spinler }, 5133420426cSMatt Spinler { 5143420426cSMatt Spinler "name": "set_net_decrease_target", 5153420426cSMatt Spinler "groups": [ 5163420426cSMatt Spinler { 5173420426cSMatt Spinler "name": "dram temps", 5183420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5193420426cSMatt Spinler "property": { "name": "Value" } 5203420426cSMatt Spinler } 5213420426cSMatt Spinler ], 5228ef2c86bSMatt Spinler "state": 61.0, 5233420426cSMatt Spinler "delta": 40 5243420426cSMatt Spinler }, 5253420426cSMatt Spinler { 5263420426cSMatt Spinler "name": "set_net_decrease_target", 5273420426cSMatt Spinler "groups": [ 5283420426cSMatt Spinler { 5293420426cSMatt Spinler "name": "internal memory buffer temps", 5303420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5313420426cSMatt Spinler "property": { "name": "Value" } 5323420426cSMatt Spinler } 5333420426cSMatt Spinler ], 5343420426cSMatt Spinler "state": 71.0, 5353420426cSMatt Spinler "delta": 40 5363420426cSMatt Spinler }, 5373420426cSMatt Spinler { 5383420426cSMatt Spinler "name": "set_net_decrease_target", 5393420426cSMatt Spinler "groups": [ 5403420426cSMatt Spinler { 5413420426cSMatt Spinler "name": "vdd vrm temps", 5423420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5433420426cSMatt Spinler "property": { "name": "Value" } 5443420426cSMatt Spinler } 5453420426cSMatt Spinler ], 5463420426cSMatt Spinler "state": 79.0, 5473420426cSMatt Spinler "delta": 30 5483420426cSMatt Spinler }, 5493420426cSMatt Spinler { 5503420426cSMatt Spinler "name": "set_net_decrease_target", 5513420426cSMatt Spinler "groups": [ 5523420426cSMatt Spinler { 5533420426cSMatt Spinler "name": "nvme temps", 5543420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5553420426cSMatt Spinler "property": { "name": "Value" } 5563420426cSMatt Spinler } 5573420426cSMatt Spinler ], 5583420426cSMatt Spinler "state": 55.0, 5593420426cSMatt Spinler "delta": 40 5603420426cSMatt Spinler } 5613420426cSMatt Spinler ] 5623420426cSMatt Spinler }, 5633420426cSMatt Spinler { 5643420426cSMatt Spinler // Remove NVMe temperature objects from cache when they are removed from 5653420426cSMatt Spinler // dbus. There's no need to react to their removal. 5663420426cSMatt Spinler "name": "remove nvme objects", 5673420426cSMatt Spinler "groups": [ 5683420426cSMatt Spinler { 5693420426cSMatt Spinler "name": "nvme temps", 5703420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 5713420426cSMatt Spinler "property": { "name": "Value" } 5723420426cSMatt Spinler }, 5733420426cSMatt Spinler { 5743420426cSMatt Spinler "name": "nvme temps", 5753420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus", 5763420426cSMatt Spinler "property": { "name": "Functional" } 5773420426cSMatt Spinler } 5783420426cSMatt Spinler ], 5793420426cSMatt Spinler "triggers": [ 5803420426cSMatt Spinler { 5813420426cSMatt Spinler "class": "signal", 5823420426cSMatt Spinler "signal": "interfaces_removed" 5833420426cSMatt Spinler } 5843420426cSMatt Spinler ] 5853420426cSMatt Spinler }, 5863420426cSMatt Spinler { 5873420426cSMatt Spinler "name": "set pcie floor index", 5883420426cSMatt Spinler "groups": [ 5893420426cSMatt Spinler { 5903420426cSMatt Spinler "name": "pcie slots", 5913420426cSMatt Spinler "interface": "xyz.openbmc_project.State.Decorator.PowerState", 5923420426cSMatt Spinler "property": { 5933420426cSMatt Spinler "name": "PowerState" 5943420426cSMatt Spinler } 5953420426cSMatt Spinler }, 5963420426cSMatt Spinler { 5973420426cSMatt Spinler "name": "pcie cards", 5983420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 5993420426cSMatt Spinler "property": { 6003420426cSMatt Spinler "name": "Function0DeviceId" 6013420426cSMatt Spinler } 6023420426cSMatt Spinler }, 6033420426cSMatt Spinler { 6043420426cSMatt Spinler "name": "pcie cards", 6053420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 6063420426cSMatt Spinler "property": { 6073420426cSMatt Spinler "name": "Function0VendorId" 6083420426cSMatt Spinler } 6093420426cSMatt Spinler }, 6103420426cSMatt Spinler { 6113420426cSMatt Spinler "name": "pcie cards", 6123420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 6133420426cSMatt Spinler "property": { 6143420426cSMatt Spinler "name": "Function0SubsystemId" 6153420426cSMatt Spinler } 6163420426cSMatt Spinler }, 6173420426cSMatt Spinler { 6183420426cSMatt Spinler "name": "pcie cards", 6193420426cSMatt Spinler "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice", 6203420426cSMatt Spinler "property": { 6213420426cSMatt Spinler "name": "Function0SubsystemVendorId" 6223420426cSMatt Spinler } 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": "properties_changed" 6333420426cSMatt Spinler }, 6343420426cSMatt Spinler { 6353420426cSMatt Spinler "class": "signal", 6363420426cSMatt Spinler "signal": "interfaces_added" 6373420426cSMatt Spinler } 6383420426cSMatt Spinler ], 6393420426cSMatt Spinler "actions": [ 6403420426cSMatt Spinler { 6413420426cSMatt Spinler "name": "pcie_card_floors", 6423420426cSMatt Spinler "use_config_specific_files": true, 6433420426cSMatt Spinler "settle_time": 2 6443420426cSMatt Spinler } 6453420426cSMatt Spinler ] 6463420426cSMatt Spinler }, 6473420426cSMatt Spinler { 6483420426cSMatt Spinler "name": "Set altitude offset parameter", 6493420426cSMatt Spinler "groups": [ 6503420426cSMatt Spinler { 6513420426cSMatt Spinler "name": "altitude", 6523420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 6533420426cSMatt Spinler "property": { "name": "Value" } 6543420426cSMatt Spinler } 6553420426cSMatt Spinler ], 6563420426cSMatt Spinler "triggers": [ 6573420426cSMatt Spinler { 6583420426cSMatt Spinler "class": "init", 6593420426cSMatt Spinler "method": "get_properties" 6603420426cSMatt Spinler }, 6613420426cSMatt Spinler { 6623420426cSMatt Spinler "class": "signal", 6633420426cSMatt Spinler "signal": "interfaces_added" 6643420426cSMatt Spinler }, 6653420426cSMatt Spinler { 6663420426cSMatt Spinler // Refresh altitude every 24hrs 6673420426cSMatt Spinler "class": "timer", 6683420426cSMatt Spinler "type": "repeating", 6693420426cSMatt Spinler "interval": 86400000000, 6703420426cSMatt Spinler "preload_groups": true 6713420426cSMatt Spinler } 6723420426cSMatt Spinler ], 6733420426cSMatt Spinler "actions": [ 6743420426cSMatt Spinler { 6753420426cSMatt Spinler "name": "set_parameter_from_group_max", 676950ff459SMatt Spinler "parameter_name": "ambient_24_5_altitude_offset", 6773420426cSMatt Spinler "modifier": { 6783420426cSMatt Spinler "operator": "less_than", 6793420426cSMatt Spinler "default_value": 10000, 6803420426cSMatt Spinler "value": [ 6813420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 682338b3e3dSMatt Spinler { "arg_value": 1000, "parameter_value": 180 }, 683338b3e3dSMatt Spinler { "arg_value": 1500, "parameter_value": 320 }, 684338b3e3dSMatt Spinler { "arg_value": 2000, "parameter_value": 650 }, 685338b3e3dSMatt Spinler { "arg_value": 2500, "parameter_value": 1010 }, 686338b3e3dSMatt Spinler { "arg_value": 3050, "parameter_value": 1370 } 6873420426cSMatt Spinler ] 6883420426cSMatt Spinler } 6893420426cSMatt Spinler }, 6903420426cSMatt Spinler { 6913420426cSMatt Spinler "name": "set_parameter_from_group_max", 692950ff459SMatt Spinler "parameter_name": "ambient_29_5_altitude_offset", 6933420426cSMatt Spinler "modifier": { 6943420426cSMatt Spinler "operator": "less_than", 6953420426cSMatt Spinler "default_value": 10000, 6963420426cSMatt Spinler "value": [ 6973420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 698338b3e3dSMatt Spinler { "arg_value": 1000, "parameter_value": 200 }, 699338b3e3dSMatt Spinler { "arg_value": 1500, "parameter_value": 340 }, 700338b3e3dSMatt Spinler { "arg_value": 2000, "parameter_value": 580 }, 701338b3e3dSMatt Spinler { "arg_value": 2500, "parameter_value": 950 }, 702338b3e3dSMatt Spinler { "arg_value": 3050, "parameter_value": 1500 } 7033420426cSMatt Spinler ] 7043420426cSMatt Spinler } 7053420426cSMatt Spinler }, 7063420426cSMatt Spinler { 7073420426cSMatt Spinler "name": "set_parameter_from_group_max", 708950ff459SMatt Spinler "parameter_name": "ambient_34_5_altitude_offset", 7093420426cSMatt Spinler "modifier": { 7103420426cSMatt Spinler "operator": "less_than", 7113420426cSMatt Spinler "default_value": 10000, 7123420426cSMatt Spinler "value": [ 7133420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 714338b3e3dSMatt Spinler { "arg_value": 1000, "parameter_value": 250 }, 715338b3e3dSMatt Spinler { "arg_value": 1500, "parameter_value": 580 }, 716338b3e3dSMatt Spinler { "arg_value": 2000, "parameter_value": 980 }, 717338b3e3dSMatt Spinler { "arg_value": 2500, "parameter_value": 1430 }, 718338b3e3dSMatt Spinler { "arg_value": 3050, "parameter_value": 1930 } 7193420426cSMatt Spinler ] 7203420426cSMatt Spinler } 7213420426cSMatt Spinler }, 7223420426cSMatt Spinler { 7233420426cSMatt Spinler "name": "set_parameter_from_group_max", 724950ff459SMatt Spinler "parameter_name": "ambient_39_5_altitude_offset", 7253420426cSMatt Spinler "modifier": { 7263420426cSMatt Spinler "operator": "less_than", 7273420426cSMatt Spinler "default_value": 10000, 7283420426cSMatt Spinler "value": [ 7293420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 730338b3e3dSMatt Spinler { "arg_value": 1000, "parameter_value": 340 }, 731338b3e3dSMatt Spinler { "arg_value": 1500, "parameter_value": 720 }, 732338b3e3dSMatt Spinler { "arg_value": 2000, "parameter_value": 1180 }, 733338b3e3dSMatt Spinler { "arg_value": 2500, "parameter_value": 1800 }, 734338b3e3dSMatt Spinler { "arg_value": 3050, "parameter_value": 2550 } 7353420426cSMatt Spinler ] 7363420426cSMatt Spinler } 7373420426cSMatt Spinler }, 7383420426cSMatt Spinler { 7393420426cSMatt Spinler "name": "set_parameter_from_group_max", 740950ff459SMatt Spinler "parameter_name": "ambient_44_5_altitude_offset", 7413420426cSMatt Spinler "modifier": { 7423420426cSMatt Spinler "operator": "less_than", 7433420426cSMatt Spinler "default_value": 10000, 7443420426cSMatt Spinler "value": [ 7453420426cSMatt Spinler { "arg_value": 500, "parameter_value": 0 }, 746338b3e3dSMatt Spinler { "arg_value": 1000, "parameter_value": 450 }, 747338b3e3dSMatt Spinler { "arg_value": 1500, "parameter_value": 1050 }, 748338b3e3dSMatt Spinler { "arg_value": 2000, "parameter_value": 1820 }, 749338b3e3dSMatt Spinler { "arg_value": 2500, "parameter_value": 2590 }, 750338b3e3dSMatt Spinler { "arg_value": 3050, "parameter_value": 3360 } 7513420426cSMatt Spinler ] 7523420426cSMatt Spinler } 7533420426cSMatt Spinler } 7543420426cSMatt Spinler ] 7553420426cSMatt Spinler }, 7563420426cSMatt Spinler { 7573420426cSMatt Spinler "name": "Fan floors", 7583420426cSMatt Spinler "groups": [ 7593420426cSMatt Spinler { 7603420426cSMatt Spinler "name": "ambient temp", 7613420426cSMatt Spinler "interface": "xyz.openbmc_project.Sensor.Value", 7623420426cSMatt Spinler "property": { "name": "Value" } 7633420426cSMatt Spinler } 7643420426cSMatt Spinler ], 7653420426cSMatt Spinler "triggers": [ 7663420426cSMatt Spinler { 7673420426cSMatt Spinler "class": "init", 7683420426cSMatt Spinler "method": "get_properties" 7693420426cSMatt Spinler }, 7703420426cSMatt Spinler { 7713420426cSMatt Spinler "class": "signal", 7723420426cSMatt Spinler "signal": "properties_changed" 7733420426cSMatt Spinler }, 7743420426cSMatt Spinler { 7753420426cSMatt Spinler "class": "signal", 7763420426cSMatt Spinler "signal": "interfaces_added" 7773420426cSMatt Spinler }, 7783420426cSMatt Spinler { 7793420426cSMatt Spinler "class": "parameter", 7803420426cSMatt Spinler "parameter": "pcie_floor_index" 7813420426cSMatt Spinler }, 7823420426cSMatt Spinler { 7833420426cSMatt Spinler "class": "parameter", 784950ff459SMatt Spinler "parameter": "ambient_24_5_altitude_offset" 7853420426cSMatt Spinler }, 7863420426cSMatt Spinler { 7873420426cSMatt Spinler "class": "parameter", 788950ff459SMatt Spinler "parameter": "ambient_29_5_altitude_offset" 7893420426cSMatt Spinler }, 7903420426cSMatt Spinler { 7913420426cSMatt Spinler "class": "parameter", 792950ff459SMatt Spinler "parameter": "ambient_34_5_altitude_offset" 7933420426cSMatt Spinler }, 7943420426cSMatt Spinler { 7953420426cSMatt Spinler "class": "parameter", 796950ff459SMatt Spinler "parameter": "ambient_39_5_altitude_offset" 7973420426cSMatt Spinler }, 7983420426cSMatt Spinler { 7993420426cSMatt Spinler "class": "parameter", 800950ff459SMatt Spinler "parameter": "ambient_44_5_altitude_offset" 8013420426cSMatt Spinler } 8023420426cSMatt Spinler ], 8033420426cSMatt Spinler "actions": [ 8043420426cSMatt Spinler { 8053420426cSMatt Spinler "name": "mapped_floor", 8063420426cSMatt Spinler "key_group": "ambient temp", 8073420426cSMatt Spinler "fan_floors": [ 8083420426cSMatt Spinler { 809950ff459SMatt Spinler // Entry valid for temps < 24.5 810950ff459SMatt Spinler "key": 24.5, 811338b3e3dSMatt Spinler "default_floor": 4130, 812950ff459SMatt Spinler "floor_offset_parameter": "ambient_24_5_altitude_offset", 8133420426cSMatt Spinler "floors": [ 8143420426cSMatt Spinler { 8153420426cSMatt Spinler "parameter": "pcie_floor_index", 8168dab554bSMatt Spinler "floors": [{ "value": 1, "floor": 6200 }] 8173420426cSMatt Spinler } 8183420426cSMatt Spinler ] 8193420426cSMatt Spinler }, 8203420426cSMatt Spinler { 821950ff459SMatt Spinler // Entry valid for temps < 29.5 822950ff459SMatt Spinler "key": 29.5, 823338b3e3dSMatt Spinler "default_floor": 4810, 824950ff459SMatt Spinler "floor_offset_parameter": "ambient_29_5_altitude_offset", 8253420426cSMatt Spinler "floors": [ 8263420426cSMatt Spinler { 8273420426cSMatt Spinler "parameter": "pcie_floor_index", 8288dab554bSMatt Spinler "floors": [{ "value": 1, "floor": 6800 }] 8293420426cSMatt Spinler } 8303420426cSMatt Spinler ] 8313420426cSMatt Spinler }, 8323420426cSMatt Spinler { 833950ff459SMatt Spinler // Entry valid for temps < 34.5 834950ff459SMatt Spinler "key": 34.5, 835338b3e3dSMatt Spinler "default_floor": 5930, 836950ff459SMatt Spinler "floor_offset_parameter": "ambient_34_5_altitude_offset", 8373420426cSMatt Spinler "floors": [ 8383420426cSMatt Spinler { 8393420426cSMatt Spinler "parameter": "pcie_floor_index", 8408dab554bSMatt Spinler "floors": [{ "value": 1, "floor": 7400 }] 8413420426cSMatt Spinler } 8423420426cSMatt Spinler ] 8433420426cSMatt Spinler }, 8443420426cSMatt Spinler { 845950ff459SMatt Spinler // Entry valid for temps < 39.5 846950ff459SMatt Spinler "key": 39.5, 847338b3e3dSMatt Spinler "default_floor": 7940, 848950ff459SMatt Spinler "floor_offset_parameter": "ambient_39_5_altitude_offset", 8493420426cSMatt Spinler "floors": [ 8503420426cSMatt Spinler { 8513420426cSMatt Spinler "parameter": "pcie_floor_index", 8528dab554bSMatt Spinler "floors": [{ "value": 1, "floor": 8500 }] 8533420426cSMatt Spinler } 8543420426cSMatt Spinler ] 8553420426cSMatt Spinler }, 8563420426cSMatt Spinler { 857950ff459SMatt Spinler // Entry valid for temps < 44.5 858950ff459SMatt Spinler "key": 44.5, 859338b3e3dSMatt Spinler "default_floor": 10670, 860950ff459SMatt Spinler "floor_offset_parameter": "ambient_44_5_altitude_offset", 8613420426cSMatt Spinler "floors": [ 8623420426cSMatt Spinler { 8633420426cSMatt Spinler "parameter": "pcie_floor_index", 8648dab554bSMatt Spinler "floors": [{ "value": 1, "floor": 9800 }] 8653420426cSMatt Spinler } 8663420426cSMatt Spinler ] 8673420426cSMatt Spinler } 8683420426cSMatt Spinler ] 8693420426cSMatt Spinler } 8703420426cSMatt Spinler ] 8713420426cSMatt Spinler } 8723420426cSMatt Spinler] 873