blob: f4fded6716fb0041e7dd33c5dbf67e430e561d58 [file] [log] [blame]
Matthew Barthf0f213c2021-10-19 13:32:31 -05001[
2 {
3 // Hold fans at the given target when a number of fans are missing.
4 "name": "fan(s) missing",
5 "groups": [
6 {
7 "name": "fan inventory",
8 "interface": "xyz.openbmc_project.Inventory.Item",
9 "property": { "name": "Present" }
10 }
11 ],
12 "triggers": [
13 {
14 "class": "init",
15 "method": "get_properties"
16 },
17 {
18 "class": "signal",
19 "signal": "properties_changed"
20 }
21 ],
22 "actions": [
23 {
24 "name": "count_state_before_target",
25 "count": 1,
26 "state": false,
27 "target": 11200
28 }
29 ]
Matthew Barth991020b2021-10-19 13:34:33 -050030 },
31 {
32 // Hold fans at the given target when a number of rotors are nonfunctional.
33 "name": "fan rotor(s) faulted",
34 "groups": [
35 {
36 "name": "fan0 rotor inventory",
37 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
38 "property": { "name": "Functional" }
39 },
40 {
41 "name": "fan1 rotor inventory",
42 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
43 "property": { "name": "Functional" }
44 },
45 {
46 "name": "fan2 rotor inventory",
47 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
48 "property": { "name": "Functional" }
49 },
50 {
51 "name": "fan3 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 },
55 {
56 "name": "fan4 rotor inventory",
57 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
58 "property": { "name": "Functional" }
59 },
60 {
61 "name": "fan5 rotor inventory",
62 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
63 "property": { "name": "Functional" }
64 }
65 ],
66 "triggers": [
67 {
68 "class": "init",
69 "method": "get_properties"
70 },
71 {
72 "class": "signal",
73 "signal": "properties_changed"
74 }
75 ],
76 "actions": [
77 {
78 "name": "count_state_before_target",
79 "count": 1,
80 "state": false,
81 "target": 11200
82 }
83 ]
Matthew Barth09b09e52021-10-28 15:29:13 -050084 },
85 {
86 // Hold fans at the given target when any critical service
87 // is not running for 5 seconds.
88 "name": "service(s) missing",
89 "groups": [
90 {
Matthew Barthf3a6d452021-11-23 14:41:43 -060091 "name": "fan inventory",
92 "interface": "xyz.openbmc_project.Inventory.Item",
93 "property": { "name": "Present" }
94 },
95 {
Matthew Barth09b09e52021-10-28 15:29:13 -050096 "name": "occ objects",
97 "interface": "org.open_power.OCC.Status",
98 "property": { "name": "OccActive" }
99 }
100 ],
101 "triggers": [
102 {
103 "class": "init",
104 "method": "name_has_owner"
105 },
106 {
107 "class": "signal",
108 "signal": "name_owner_changed"
109 }
110 ],
111 "actions": [
112 {
113 "name": "call_actions_based_on_timer",
114 "timer": {
115 "interval": 5000000,
116 "type": "oneshot"
117 },
118 "actions": [
119 {
120 "name": "set_target_on_missing_owner",
121 "groups": [
122 {
123 "name": "fan inventory",
124 "interface": "xyz.openbmc_project.Inventory.Item",
125 "property": { "name": "Present" }
126 },
127 {
128 "name": "occ objects",
129 "interface": "org.open_power.OCC.Status",
130 "property": { "name": "OccActive" }
131 }
132 ],
133 "target": 11200
134 }
135 ]
136 }
137 ]
Matt Spinler5934f092021-11-03 14:30:28 -0500138 },
139 {
140 // Set a fan floor if an OCC isn't active
141 "name": "Non-active OCCs",
142 "groups": [
143 {
144 "name": "occ objects",
145 "interface": "org.open_power.OCC.Status",
146 "property": {
147 "name": "OccActive"
148 }
149 }
150 ],
151 "triggers": [
152 {
153 "class": "signal",
154 "signal": "properties_changed"
155 },
156 {
157 "class": "signal",
158 "signal": "interfaces_added"
159 },
160 {
161 "class": "init",
162 "method": "get_properties"
163 }
164 ],
165 "actions": [
166 {
167 "name": "count_state_floor",
168 "count": 1,
169 "state": false,
170 "floor": 11200
171 }
172 ]
Matt Spinler323694a2021-11-11 16:03:18 -0600173 },
174 {
175 "name": "Set Proc 0 Core DVFS parameter",
176 "groups": [
177 {
178 "name": "proc 0 core dvfs temp",
179 "interface": "xyz.openbmc_project.Sensor.Value",
180 "property": { "name": "Value" }
181 }
182 ],
183 "triggers": [
184 {
185 "class": "init",
186 "method": "get_properties"
187 },
188 {
189 "class": "signal",
190 "signal": "interfaces_added"
191 },
192 {
193 "class": "signal",
194 "signal": "properties_changed"
195 }
196 ],
197 "actions": [
198 {
199 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600200 "parameter_name": "proc_0_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600201 "modifier": {
202 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600203 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600204 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600205 },
206 {
207 "name": "set_parameter_from_group_max",
208 "parameter_name": "proc_0_core_dvfs_decrease_temp",
209 "modifier": {
210 "operator": "minus",
211 "value": 13
212 }
Matt Spinler323694a2021-11-11 16:03:18 -0600213 }
214 ]
215 },
216 {
217 "name": "Set Proc 1 Core DVFS parameter",
218 "groups": [
219 {
220 "name": "proc 1 core dvfs temp",
221 "interface": "xyz.openbmc_project.Sensor.Value",
222 "property": { "name": "Value" }
223 }
224 ],
225 "triggers": [
226 {
227 "class": "init",
228 "method": "get_properties"
229 },
230 {
231 "class": "signal",
232 "signal": "interfaces_added"
233 },
234 {
235 "class": "signal",
236 "signal": "properties_changed"
237 }
238 ],
239 "actions": [
240 {
241 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600242 "parameter_name": "proc_1_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600243 "modifier": {
244 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600245 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600246 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600247 },
248 {
249 "name": "set_parameter_from_group_max",
250 "parameter_name": "proc_1_core_dvfs_decrease_temp",
251 "modifier": {
252 "operator": "minus",
253 "value": 13
254 }
Matt Spinler323694a2021-11-11 16:03:18 -0600255 }
256 ]
257 },
258 {
259 "name": "Set Proc 2 Core DVFS parameter",
260 "groups": [
261 {
262 "name": "proc 2 core dvfs temp",
263 "interface": "xyz.openbmc_project.Sensor.Value",
264 "property": { "name": "Value" }
265 }
266 ],
267 "triggers": [
268 {
269 "class": "init",
270 "method": "get_properties"
271 },
272 {
273 "class": "signal",
274 "signal": "interfaces_added"
275 },
276 {
277 "class": "signal",
278 "signal": "properties_changed"
279 }
280 ],
281 "actions": [
282 {
283 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600284 "parameter_name": "proc_2_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600285 "modifier": {
286 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600287 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600288 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600289 },
290 {
291 "name": "set_parameter_from_group_max",
292 "parameter_name": "proc_2_core_dvfs_decrease_temp",
293 "modifier": {
294 "operator": "minus",
295 "value": 13
296 }
Matt Spinler323694a2021-11-11 16:03:18 -0600297 }
298 ]
299 },
300 {
301 "name": "Set Proc 3 Core DVFS parameter",
302 "groups": [
303 {
304 "name": "proc 3 core dvfs temp",
305 "interface": "xyz.openbmc_project.Sensor.Value",
306 "property": { "name": "Value" }
307 }
308 ],
309 "triggers": [
310 {
311 "class": "init",
312 "method": "get_properties"
313 },
314 {
315 "class": "signal",
316 "signal": "interfaces_added"
317 },
318 {
319 "class": "signal",
320 "signal": "properties_changed"
321 }
322 ],
323 "actions": [
324 {
325 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600326 "parameter_name": "proc_3_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600327 "modifier": {
328 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600329 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600330 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600331 },
332 {
333 "name": "set_parameter_from_group_max",
334 "parameter_name": "proc_3_core_dvfs_decrease_temp",
335 "modifier": {
336 "operator": "minus",
337 "value": 13
338 }
Matt Spinler323694a2021-11-11 16:03:18 -0600339 }
340 ]
341 },
342 {
343 "name": "Set Proc 0 IO Ring DVFS parameter",
344 "groups": [
345 {
346 "name": "proc 0 ioring dvfs temp",
347 "interface": "xyz.openbmc_project.Sensor.Value",
348 "property": { "name": "Value" }
349 }
350 ],
351 "triggers": [
352 {
353 "class": "init",
354 "method": "get_properties"
355 },
356 {
357 "class": "signal",
358 "signal": "interfaces_added"
359 },
360 {
361 "class": "signal",
362 "signal": "properties_changed"
363 }
364 ],
365 "actions": [
366 {
367 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600368 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600369 "modifier": {
370 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600371 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600372 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600373 },
374 {
375 "name": "set_parameter_from_group_max",
376 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
377 "modifier": {
378 "operator": "minus",
379 "value": 13
380 }
Matt Spinler323694a2021-11-11 16:03:18 -0600381 }
382 ]
383 },
384 {
385 "name": "Set Proc 1 IO Ring DVFS parameter",
386 "groups": [
387 {
388 "name": "proc 1 ioring dvfs temp",
389 "interface": "xyz.openbmc_project.Sensor.Value",
390 "property": { "name": "Value" }
391 }
392 ],
393 "triggers": [
394 {
395 "class": "init",
396 "method": "get_properties"
397 },
398 {
399 "class": "signal",
400 "signal": "interfaces_added"
401 },
402 {
403 "class": "signal",
404 "signal": "properties_changed"
405 }
406 ],
407 "actions": [
408 {
409 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600410 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600411 "modifier": {
412 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600413 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600414 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600415 },
416 {
417 "name": "set_parameter_from_group_max",
418 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
419 "modifier": {
420 "operator": "minus",
421 "value": 13
422 }
Matt Spinler323694a2021-11-11 16:03:18 -0600423 }
424 ]
425 },
426 {
427 "name": "Set Proc 2 IO Ring DVFS parameter",
428 "groups": [
429 {
430 "name": "proc 2 ioring dvfs temp",
431 "interface": "xyz.openbmc_project.Sensor.Value",
432 "property": { "name": "Value" }
433 }
434 ],
435 "triggers": [
436 {
437 "class": "init",
438 "method": "get_properties"
439 },
440 {
441 "class": "signal",
442 "signal": "interfaces_added"
443 },
444 {
445 "class": "signal",
446 "signal": "properties_changed"
447 }
448 ],
449 "actions": [
450 {
451 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600452 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600453 "modifier": {
454 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600455 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600456 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600457 },
458 {
459 "name": "set_parameter_from_group_max",
460 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
461 "modifier": {
462 "operator": "minus",
463 "value": 13
464 }
Matt Spinler323694a2021-11-11 16:03:18 -0600465 }
466 ]
467 },
468 {
469 "name": "Set Proc 3 IO Ring DVFS parameter",
470 "groups": [
471 {
472 "name": "proc 3 ioring dvfs temp",
473 "interface": "xyz.openbmc_project.Sensor.Value",
474 "property": { "name": "Value" }
475 }
476 ],
477 "triggers": [
478 {
479 "class": "init",
480 "method": "get_properties"
481 },
482 {
483 "class": "signal",
484 "signal": "properties_changed"
485 },
486 {
487 "class": "signal",
488 "signal": "interfaces_added"
489 }
490 ],
491 "actions": [
492 {
493 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600494 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600495 "modifier": {
496 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600497 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600498 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600499 },
500 {
501 "name": "set_parameter_from_group_max",
502 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
503 "modifier": {
504 "operator": "minus",
505 "value": 13
506 }
Matt Spinler323694a2021-11-11 16:03:18 -0600507 }
508 ]
509 }
Matthew Barthf0f213c2021-10-19 13:32:31 -0500510]