blob: 92539388b300f5825f966c652efce3cb9a23636a [file] [log] [blame]
Matthew Barthb123bf62021-10-19 14:48:27 -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": 10700
28 }
29 ]
Matthew Barth284505d2021-10-19 14:49:02 -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 "triggers": [
57 {
58 "class": "init",
59 "method": "get_properties"
60 },
61 {
62 "class": "signal",
63 "signal": "properties_changed"
64 }
65 ],
66 "actions": [
67 {
68 "name": "count_state_before_target",
69 "count": 1,
70 "state": false,
71 "target": 10700
72 }
73 ]
Matthew Barth09b09e52021-10-28 15:29:13 -050074 },
75 {
76 // Hold fans at the given target when any critical service
77 // is not running for 5 seconds.
78 "name": "service(s) missing",
79 "groups": [
80 {
Matthew Barthf3a6d452021-11-23 14:41:43 -060081 "name": "fan inventory",
82 "interface": "xyz.openbmc_project.Inventory.Item",
83 "property": { "name": "Present" }
84 },
85 {
Matthew Barth09b09e52021-10-28 15:29:13 -050086 "name": "occ objects",
87 "interface": "org.open_power.OCC.Status",
88 "property": { "name": "OccActive" }
89 }
90 ],
91 "triggers": [
92 {
93 "class": "init",
94 "method": "name_has_owner"
95 },
96 {
97 "class": "signal",
98 "signal": "name_owner_changed"
99 }
100 ],
101 "actions": [
102 {
103 "name": "call_actions_based_on_timer",
104 "timer": {
105 "interval": 5000000,
106 "type": "oneshot"
107 },
108 "actions": [
109 {
110 "name": "set_target_on_missing_owner",
111 "groups": [
112 {
113 "name": "fan inventory",
114 "interface": "xyz.openbmc_project.Inventory.Item",
115 "property": { "name": "Present" }
116 },
117 {
118 "name": "occ objects",
119 "interface": "org.open_power.OCC.Status",
120 "property": { "name": "OccActive" }
121 }
122 ],
123 "target": 10700
124 }
125 ]
126 }
127 ]
Matt Spinler5934f092021-11-03 14:30:28 -0500128 },
129 {
130 // Set a fan floor if an OCC isn't active
131 "name": "Non-active OCC(s)",
132 "groups": [
133 {
134 "name": "occ objects",
135 "interface": "org.open_power.OCC.Status",
136 "property": {
137 "name": "OccActive"
138 }
139 }
140 ],
141 "triggers": [
142 {
143 "class": "signal",
144 "signal": "properties_changed"
145 },
146 {
147 "class": "signal",
148 "signal": "interfaces_added"
149 },
150 {
151 "class": "init",
152 "method": "get_properties"
153 }
154 ],
155 "actions": [
156 {
157 "name": "count_state_floor",
158 "count": 1,
159 "state": false,
160 "floor": 10700
161 }
162 ]
Matt Spinler323694a2021-11-11 16:03:18 -0600163 },
164 {
165 "name": "Set Proc 0 Core DVFS parameter",
166 "groups": [
167 {
168 "name": "proc 0 core dvfs temp",
169 "interface": "xyz.openbmc_project.Sensor.Value",
170 "property": { "name": "Value" }
171 }
172 ],
173 "triggers": [
174 {
175 "class": "init",
176 "method": "get_properties"
177 },
178 {
179 "class": "signal",
180 "signal": "interfaces_added"
181 },
182 {
183 "class": "signal",
184 "signal": "properties_changed"
185 }
186 ],
187 "actions": [
188 {
189 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600190 "parameter_name": "proc_0_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600191 "modifier": {
192 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600193 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600194 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600195 },
196 {
197 "name": "set_parameter_from_group_max",
198 "parameter_name": "proc_0_core_dvfs_decrease_temp",
199 "modifier": {
200 "operator": "minus",
201 "value": 13
202 }
Matt Spinler323694a2021-11-11 16:03:18 -0600203 }
204 ]
205 },
206 {
207 "name": "Set Proc 1 Core DVFS parameter",
208 "groups": [
209 {
210 "name": "proc 1 core dvfs temp",
211 "interface": "xyz.openbmc_project.Sensor.Value",
212 "property": { "name": "Value" }
213 }
214 ],
215 "triggers": [
216 {
217 "class": "init",
218 "method": "get_properties"
219 },
220 {
221 "class": "signal",
222 "signal": "interfaces_added"
223 },
224 {
225 "class": "signal",
226 "signal": "properties_changed"
227 }
228 ],
229 "actions": [
230 {
231 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600232 "parameter_name": "proc_1_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600233 "modifier": {
234 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600235 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600236 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600237 },
238 {
239 "name": "set_parameter_from_group_max",
240 "parameter_name": "proc_1_core_dvfs_decrease_temp",
241 "modifier": {
242 "operator": "minus",
243 "value": 13
244 }
Matt Spinler323694a2021-11-11 16:03:18 -0600245 }
246 ]
247 },
248 {
249 "name": "Set Proc 2 Core DVFS parameter",
250 "groups": [
251 {
252 "name": "proc 2 core dvfs temp",
253 "interface": "xyz.openbmc_project.Sensor.Value",
254 "property": { "name": "Value" }
255 }
256 ],
257 "triggers": [
258 {
259 "class": "init",
260 "method": "get_properties"
261 },
262 {
263 "class": "signal",
264 "signal": "interfaces_added"
265 },
266 {
267 "class": "signal",
268 "signal": "properties_changed"
269 }
270 ],
271 "actions": [
272 {
273 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600274 "parameter_name": "proc_2_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600275 "modifier": {
276 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600277 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600278 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600279 },
280 {
281 "name": "set_parameter_from_group_max",
282 "parameter_name": "proc_2_core_dvfs_decrease_temp",
283 "modifier": {
284 "operator": "minus",
285 "value": 13
286 }
Matt Spinler323694a2021-11-11 16:03:18 -0600287 }
288 ]
289 },
290 {
291 "name": "Set Proc 3 Core DVFS parameter",
292 "groups": [
293 {
294 "name": "proc 3 core dvfs temp",
295 "interface": "xyz.openbmc_project.Sensor.Value",
296 "property": { "name": "Value" }
297 }
298 ],
299 "triggers": [
300 {
301 "class": "init",
302 "method": "get_properties"
303 },
304 {
305 "class": "signal",
306 "signal": "interfaces_added"
307 },
308 {
309 "class": "signal",
310 "signal": "properties_changed"
311 }
312 ],
313 "actions": [
314 {
315 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600316 "parameter_name": "proc_3_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600317 "modifier": {
318 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600319 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600320 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600321 },
322 {
323 "name": "set_parameter_from_group_max",
324 "parameter_name": "proc_3_core_dvfs_decrease_temp",
325 "modifier": {
326 "operator": "minus",
327 "value": 13
328 }
Matt Spinler323694a2021-11-11 16:03:18 -0600329 }
330 ]
331 },
332 {
333 "name": "Set Proc 4 Core DVFS parameter",
334 "groups": [
335 {
336 "name": "proc 4 core dvfs temp",
337 "interface": "xyz.openbmc_project.Sensor.Value",
338 "property": { "name": "Value" }
339 }
340 ],
341 "triggers": [
342 {
343 "class": "init",
344 "method": "get_properties"
345 },
346 {
347 "class": "signal",
348 "signal": "interfaces_added"
349 },
350 {
351 "class": "signal",
352 "signal": "properties_changed"
353 }
354 ],
355 "actions": [
356 {
357 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600358 "parameter_name": "proc_4_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600359 "modifier": {
360 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600361 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600362 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600363 },
364 {
365 "name": "set_parameter_from_group_max",
366 "parameter_name": "proc_4_core_dvfs_decrease_temp",
367 "modifier": {
368 "operator": "minus",
369 "value": 13
370 }
Matt Spinler323694a2021-11-11 16:03:18 -0600371 }
372 ]
373 },
374 {
375 "name": "Set Proc 5 Core DVFS parameter",
376 "groups": [
377 {
378 "name": "proc 5 core dvfs temp",
379 "interface": "xyz.openbmc_project.Sensor.Value",
380 "property": { "name": "Value" }
381 }
382 ],
383 "triggers": [
384 {
385 "class": "init",
386 "method": "get_properties"
387 },
388 {
389 "class": "signal",
390 "signal": "interfaces_added"
391 },
392 {
393 "class": "signal",
394 "signal": "properties_changed"
395 }
396 ],
397 "actions": [
398 {
399 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600400 "parameter_name": "proc_5_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600401 "modifier": {
402 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600403 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600404 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600405 },
406 {
407 "name": "set_parameter_from_group_max",
408 "parameter_name": "proc_5_core_dvfs_decrease_temp",
409 "modifier": {
410 "operator": "minus",
411 "value": 13
412 }
Matt Spinler323694a2021-11-11 16:03:18 -0600413 }
414 ]
415 },
416 {
417 "name": "Set Proc 6 Core DVFS parameter",
418 "groups": [
419 {
420 "name": "proc 6 core dvfs temp",
421 "interface": "xyz.openbmc_project.Sensor.Value",
422 "property": { "name": "Value" }
423 }
424 ],
425 "triggers": [
426 {
427 "class": "init",
428 "method": "get_properties"
429 },
430 {
431 "class": "signal",
432 "signal": "interfaces_added"
433 },
434 {
435 "class": "signal",
436 "signal": "properties_changed"
437 }
438 ],
439 "actions": [
440 {
441 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600442 "parameter_name": "proc_6_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600443 "modifier": {
444 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600445 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600446 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600447 },
448 {
449 "name": "set_parameter_from_group_max",
450 "parameter_name": "proc_6_core_dvfs_decrease_temp",
451 "modifier": {
452 "operator": "minus",
453 "value": 13
454 }
Matt Spinler323694a2021-11-11 16:03:18 -0600455 }
456 ]
457 },
458 {
459 "name": "Set Proc 7 Core DVFS parameter",
460 "groups": [
461 {
462 "name": "proc 7 core dvfs temp",
463 "interface": "xyz.openbmc_project.Sensor.Value",
464 "property": { "name": "Value" }
465 }
466 ],
467 "triggers": [
468 {
469 "class": "init",
470 "method": "get_properties"
471 },
472 {
473 "class": "signal",
474 "signal": "interfaces_added"
475 },
476 {
477 "class": "signal",
478 "signal": "properties_changed"
479 }
480 ],
481 "actions": [
482 {
483 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600484 "parameter_name": "proc_7_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600485 "modifier": {
486 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600487 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600488 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600489 },
490 {
491 "name": "set_parameter_from_group_max",
492 "parameter_name": "proc_7_core_dvfs_decrease_temp",
493 "modifier": {
494 "operator": "minus",
495 "value": 13
496 }
Matt Spinler323694a2021-11-11 16:03:18 -0600497 }
498 ]
499 },
500 {
501 "name": "Set Proc 0 IO Ring DVFS parameter",
502 "groups": [
503 {
504 "name": "proc 0 ioring dvfs temp",
505 "interface": "xyz.openbmc_project.Sensor.Value",
506 "property": { "name": "Value" }
507 }
508 ],
509 "triggers": [
510 {
511 "class": "init",
512 "method": "get_properties"
513 },
514 {
515 "class": "signal",
516 "signal": "interfaces_added"
517 },
518 {
519 "class": "signal",
520 "signal": "properties_changed"
521 }
522 ],
523 "actions": [
524 {
525 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600526 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600527 "modifier": {
528 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600529 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600530 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600531 },
532 {
533 "name": "set_parameter_from_group_max",
534 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
535 "modifier": {
536 "operator": "minus",
537 "value": 13
538 }
Matt Spinler323694a2021-11-11 16:03:18 -0600539 }
540 ]
541 },
542 {
543 "name": "Set Proc 1 IO Ring DVFS parameter",
544 "groups": [
545 {
546 "name": "proc 1 ioring dvfs temp",
547 "interface": "xyz.openbmc_project.Sensor.Value",
548 "property": { "name": "Value" }
549 }
550 ],
551 "triggers": [
552 {
553 "class": "init",
554 "method": "get_properties"
555 },
556 {
557 "class": "signal",
558 "signal": "interfaces_added"
559 },
560 {
561 "class": "signal",
562 "signal": "properties_changed"
563 }
564 ],
565 "actions": [
566 {
567 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600568 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600569 "modifier": {
570 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600571 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600572 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600573 },
574 {
575 "name": "set_parameter_from_group_max",
576 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
577 "modifier": {
578 "operator": "minus",
579 "value": 13
580 }
Matt Spinler323694a2021-11-11 16:03:18 -0600581 }
582 ]
583 },
584 {
585 "name": "Set Proc 2 IO Ring DVFS parameter",
586 "groups": [
587 {
588 "name": "proc 2 ioring dvfs temp",
589 "interface": "xyz.openbmc_project.Sensor.Value",
590 "property": { "name": "Value" }
591 }
592 ],
593 "triggers": [
594 {
595 "class": "init",
596 "method": "get_properties"
597 },
598 {
599 "class": "signal",
600 "signal": "interfaces_added"
601 },
602 {
603 "class": "signal",
604 "signal": "properties_changed"
605 }
606 ],
607 "actions": [
608 {
609 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600610 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600611 "modifier": {
612 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600613 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600614 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600615 },
616 {
617 "name": "set_parameter_from_group_max",
618 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
619 "modifier": {
620 "operator": "minus",
621 "value": 13
622 }
Matt Spinler323694a2021-11-11 16:03:18 -0600623 }
624 ]
625 },
626 {
627 "name": "Set Proc 3 IO Ring DVFS parameter",
628 "groups": [
629 {
630 "name": "proc 3 ioring dvfs temp",
631 "interface": "xyz.openbmc_project.Sensor.Value",
632 "property": { "name": "Value" }
633 }
634 ],
635 "triggers": [
636 {
637 "class": "init",
638 "method": "get_properties"
639 },
640 {
641 "class": "signal",
642 "signal": "properties_changed"
643 },
644 {
645 "class": "signal",
646 "signal": "interfaces_added"
647 }
648 ],
649 "actions": [
650 {
651 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600652 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600653 "modifier": {
654 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600655 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600656 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600657 },
658 {
659 "name": "set_parameter_from_group_max",
660 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
661 "modifier": {
662 "operator": "minus",
663 "value": 13
664 }
Matt Spinler323694a2021-11-11 16:03:18 -0600665 }
666 ]
667 },
668 {
669 "name": "Set Proc 4 IO Ring DVFS parameter",
670 "groups": [
671 {
672 "name": "proc 4 ioring dvfs temp",
673 "interface": "xyz.openbmc_project.Sensor.Value",
674 "property": { "name": "Value" }
675 }
676 ],
677 "triggers": [
678 {
679 "class": "init",
680 "method": "get_properties"
681 },
682 {
683 "class": "signal",
684 "signal": "interfaces_added"
685 },
686 {
687 "class": "signal",
688 "signal": "properties_changed"
689 }
690 ],
691 "actions": [
692 {
693 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600694 "parameter_name": "proc_4_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600695 "modifier": {
696 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600697 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600698 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600699 },
700 {
701 "name": "set_parameter_from_group_max",
702 "parameter_name": "proc_4_ioring_dvfs_decrease_temp",
703 "modifier": {
704 "operator": "minus",
705 "value": 13
706 }
Matt Spinler323694a2021-11-11 16:03:18 -0600707 }
708 ]
709 },
710 {
711 "name": "Set Proc 5 IO Ring DVFS parameter",
712 "groups": [
713 {
714 "name": "proc 5 ioring dvfs temp",
715 "interface": "xyz.openbmc_project.Sensor.Value",
716 "property": { "name": "Value" }
717 }
718 ],
719 "triggers": [
720 {
721 "class": "init",
722 "method": "get_properties"
723 },
724 {
725 "class": "signal",
726 "signal": "interfaces_added"
727 },
728 {
729 "class": "signal",
730 "signal": "properties_changed"
731 }
732 ],
733 "actions": [
734 {
735 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600736 "parameter_name": "proc_5_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600737 "modifier": {
738 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600739 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600740 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600741 },
742 {
743 "name": "set_parameter_from_group_max",
744 "parameter_name": "proc_5_ioring_dvfs_decrease_temp",
745 "modifier": {
746 "operator": "minus",
747 "value": 13
748 }
Matt Spinler323694a2021-11-11 16:03:18 -0600749 }
750 ]
751 },
752 {
753 "name": "Set Proc 6 IO Ring DVFS parameter",
754 "groups": [
755 {
756 "name": "proc 6 ioring dvfs temp",
757 "interface": "xyz.openbmc_project.Sensor.Value",
758 "property": { "name": "Value" }
759 }
760 ],
761 "triggers": [
762 {
763 "class": "init",
764 "method": "get_properties"
765 },
766 {
767 "class": "signal",
768 "signal": "interfaces_added"
769 },
770 {
771 "class": "signal",
772 "signal": "properties_changed"
773 }
774 ],
775 "actions": [
776 {
777 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600778 "parameter_name": "proc_6_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600779 "modifier": {
780 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600781 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600782 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600783 },
784 {
785 "name": "set_parameter_from_group_max",
786 "parameter_name": "proc_6_ioring_dvfs_decrease_temp",
787 "modifier": {
788 "operator": "minus",
789 "value": 13
790 }
Matt Spinler323694a2021-11-11 16:03:18 -0600791 }
792 ]
793 },
794 {
795 "name": "Set Proc 7 IO Ring DVFS parameter",
796 "groups": [
797 {
798 "name": "proc 7 ioring dvfs temp",
799 "interface": "xyz.openbmc_project.Sensor.Value",
800 "property": { "name": "Value" }
801 }
802 ],
803 "triggers": [
804 {
805 "class": "init",
806 "method": "get_properties"
807 },
808 {
809 "class": "signal",
810 "signal": "interfaces_added"
811 },
812 {
813 "class": "signal",
814 "signal": "properties_changed"
815 }
816 ],
817 "actions": [
818 {
819 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600820 "parameter_name": "proc_7_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600821 "modifier": {
822 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600823 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600824 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600825 },
826 {
827 "name": "set_parameter_from_group_max",
828 "parameter_name": "proc_7_ioring_dvfs_decrease_temp",
829 "modifier": {
830 "operator": "minus",
831 "value": 13
832 }
Matt Spinler323694a2021-11-11 16:03:18 -0600833 }
834 ]
Matthew Barthb6f10352021-12-02 17:42:49 -0600835 },
836 {
837 // Collect group temperatures each iteration the repeating timer expires
838 "name": "Fan control timer loop",
839 "groups": [
840 {
841 "name": "proc0 core temps",
842 "interface": "xyz.openbmc_project.Sensor.Value",
843 "property": { "name": "Value" }
844 },
845 {
846 "name": "proc1 core temps",
847 "interface": "xyz.openbmc_project.Sensor.Value",
848 "property": { "name": "Value" }
849 },
850 {
851 "name": "proc2 core temps",
852 "interface": "xyz.openbmc_project.Sensor.Value",
853 "property": { "name": "Value" }
854 },
855 {
856 "name": "proc3 core temps",
857 "interface": "xyz.openbmc_project.Sensor.Value",
858 "property": { "name": "Value" }
859 },
860 {
861 "name": "proc4 core temps",
862 "interface": "xyz.openbmc_project.Sensor.Value",
863 "property": { "name": "Value" }
864 },
865 {
866 "name": "proc5 core temps",
867 "interface": "xyz.openbmc_project.Sensor.Value",
868 "property": { "name": "Value" }
869 },
870 {
871 "name": "proc6 core temps",
872 "interface": "xyz.openbmc_project.Sensor.Value",
873 "property": { "name": "Value" }
874 },
875 {
876 "name": "proc7 core temps",
877 "interface": "xyz.openbmc_project.Sensor.Value",
878 "property": { "name": "Value" }
879 },
880 {
881 "name": "proc0 ioring temp",
882 "interface": "xyz.openbmc_project.Sensor.Value",
883 "property": { "name": "Value" }
884 },
885 {
886 "name": "proc1 ioring temp",
887 "interface": "xyz.openbmc_project.Sensor.Value",
888 "property": { "name": "Value" }
889 },
890 {
891 "name": "proc2 ioring temp",
892 "interface": "xyz.openbmc_project.Sensor.Value",
893 "property": { "name": "Value" }
894 },
895 {
896 "name": "proc3 ioring temp",
897 "interface": "xyz.openbmc_project.Sensor.Value",
898 "property": { "name": "Value" }
899 },
900 {
901 "name": "proc4 ioring temp",
902 "interface": "xyz.openbmc_project.Sensor.Value",
903 "property": { "name": "Value" }
904 },
905 {
906 "name": "proc5 ioring temp",
907 "interface": "xyz.openbmc_project.Sensor.Value",
908 "property": { "name": "Value" }
909 },
910 {
911 "name": "proc6 ioring temp",
912 "interface": "xyz.openbmc_project.Sensor.Value",
913 "property": { "name": "Value" }
914 },
915 {
916 "name": "proc7 ioring temp",
917 "interface": "xyz.openbmc_project.Sensor.Value",
918 "property": { "name": "Value" }
919 },
920 {
921 "name": "dram temps",
922 "interface": "xyz.openbmc_project.Sensor.Value",
923 "property": { "name": "Value" }
924 },
925 {
926 "name": "pmic temps",
927 "interface": "xyz.openbmc_project.Sensor.Value",
928 "property": { "name": "Value" }
929 },
930 {
931 "name": "internal memory buffer temps",
932 "interface": "xyz.openbmc_project.Sensor.Value",
933 "property": { "name": "Value" }
934 },
935 {
936 "name": "dram and external memory buffer temps",
937 "interface": "xyz.openbmc_project.Sensor.Value",
938 "property": { "name": "Value" }
939 },
940 {
941 "name": "external memory buffer temps",
942 "interface": "xyz.openbmc_project.Sensor.Value",
943 "property": { "name": "Value" }
944 },
945 {
946 "name": "vdd vrm temps",
947 "interface": "xyz.openbmc_project.Sensor.Value",
948 "property": { "name": "Value" }
949 }
950 ],
951 "triggers": [
952 {
953 "class": "timer",
954 "type": "repeating",
955 "interval": 2000000,
956 "preload_groups": true
957 }
Matthew Barthd251fef2021-12-07 20:34:52 -0600958 ],
959 "actions": [
960 {
961 "name": "set_net_increase_target",
962 "groups": [
963 {
964 "name": "proc0 core temps",
965 "interface": "xyz.openbmc_project.Sensor.Value",
966 "property": { "name": "Value" }
967 }
968 ],
969 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
970 "delta": 255
971 },
972 {
973 "name": "set_net_increase_target",
974 "groups": [
975 {
976 "name": "proc1 core temps",
977 "interface": "xyz.openbmc_project.Sensor.Value",
978 "property": { "name": "Value" }
979 }
980 ],
981 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
982 "delta": 255
983 },
984 {
985 "name": "set_net_increase_target",
986 "groups": [
987 {
988 "name": "proc2 core temps",
989 "interface": "xyz.openbmc_project.Sensor.Value",
990 "property": { "name": "Value" }
991 }
992 ],
993 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
994 "delta": 255
995 },
996 {
997 "name": "set_net_increase_target",
998 "groups": [
999 {
1000 "name": "proc3 core temps",
1001 "interface": "xyz.openbmc_project.Sensor.Value",
1002 "property": { "name": "Value" }
1003 }
1004 ],
1005 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
1006 "delta": 255
1007 },
1008 {
1009 "name": "set_net_increase_target",
1010 "groups": [
1011 {
1012 "name": "proc4 core temps",
1013 "interface": "xyz.openbmc_project.Sensor.Value",
1014 "property": { "name": "Value" }
1015 }
1016 ],
1017 "state_parameter_name": "proc_4_core_dvfs_increase_temp",
1018 "delta": 255
1019 },
1020 {
1021 "name": "set_net_increase_target",
1022 "groups": [
1023 {
1024 "name": "proc5 core temps",
1025 "interface": "xyz.openbmc_project.Sensor.Value",
1026 "property": { "name": "Value" }
1027 }
1028 ],
1029 "state_parameter_name": "proc_5_core_dvfs_increase_temp",
1030 "delta": 255
1031 },
1032 {
1033 "name": "set_net_increase_target",
1034 "groups": [
1035 {
1036 "name": "proc6 core temps",
1037 "interface": "xyz.openbmc_project.Sensor.Value",
1038 "property": { "name": "Value" }
1039 }
1040 ],
1041 "state_parameter_name": "proc_6_core_dvfs_increase_temp",
1042 "delta": 255
1043 },
1044 {
1045 "name": "set_net_increase_target",
1046 "groups": [
1047 {
1048 "name": "proc7 core temps",
1049 "interface": "xyz.openbmc_project.Sensor.Value",
1050 "property": { "name": "Value" }
1051 }
1052 ],
1053 "state_parameter_name": "proc_7_core_dvfs_increase_temp",
1054 "delta": 255
1055 },
1056 {
1057 "name": "set_net_increase_target",
1058 "groups": [
1059 {
1060 "name": "proc0 ioring temp",
1061 "interface": "xyz.openbmc_project.Sensor.Value",
1062 "property": { "name": "Value" }
1063 }
1064 ],
1065 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
1066 "delta": 255
1067 },
1068 {
1069 "name": "set_net_increase_target",
1070 "groups": [
1071 {
1072 "name": "proc1 ioring temp",
1073 "interface": "xyz.openbmc_project.Sensor.Value",
1074 "property": { "name": "Value" }
1075 }
1076 ],
1077 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
1078 "delta": 255
1079 },
1080 {
1081 "name": "set_net_increase_target",
1082 "groups": [
1083 {
1084 "name": "proc2 ioring temp",
1085 "interface": "xyz.openbmc_project.Sensor.Value",
1086 "property": { "name": "Value" }
1087 }
1088 ],
1089 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
1090 "delta": 255
1091 },
1092 {
1093 "name": "set_net_increase_target",
1094 "groups": [
1095 {
1096 "name": "proc3 ioring temp",
1097 "interface": "xyz.openbmc_project.Sensor.Value",
1098 "property": { "name": "Value" }
1099 }
1100 ],
1101 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
1102 "delta": 255
1103 },
1104 {
1105 "name": "set_net_increase_target",
1106 "groups": [
1107 {
1108 "name": "proc4 ioring temp",
1109 "interface": "xyz.openbmc_project.Sensor.Value",
1110 "property": { "name": "Value" }
1111 }
1112 ],
1113 "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
1114 "delta": 255
1115 },
1116 {
1117 "name": "set_net_increase_target",
1118 "groups": [
1119 {
1120 "name": "proc5 ioring temp",
1121 "interface": "xyz.openbmc_project.Sensor.Value",
1122 "property": { "name": "Value" }
1123 }
1124 ],
1125 "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
1126 "delta": 255
1127 },
1128 {
1129 "name": "set_net_increase_target",
1130 "groups": [
1131 {
1132 "name": "proc6 ioring temp",
1133 "interface": "xyz.openbmc_project.Sensor.Value",
1134 "property": { "name": "Value" }
1135 }
1136 ],
1137 "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
1138 "delta": 255
1139 },
1140 {
1141 "name": "set_net_increase_target",
1142 "groups": [
1143 {
1144 "name": "proc7 ioring temp",
1145 "interface": "xyz.openbmc_project.Sensor.Value",
1146 "property": { "name": "Value" }
1147 }
1148 ],
1149 "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
1150 "delta": 255
1151 },
1152 {
1153 "name": "set_net_increase_target",
1154 "groups": [
1155 {
1156 "name": "dram temps",
1157 "interface": "xyz.openbmc_project.Sensor.Value",
1158 "property": { "name": "Value" }
1159 }
1160 ],
1161 "state": 66.0,
1162 "delta": 175
1163 },
1164 {
1165 "name": "set_net_increase_target",
1166 "groups": [
1167 {
1168 "name": "pmic temps",
1169 "interface": "xyz.openbmc_project.Sensor.Value",
1170 "property": { "name": "Value" }
1171 }
1172 ],
1173 "state": 52.0,
1174 "delta": 200
1175 },
1176 {
1177 "name": "set_net_increase_target",
1178 "groups": [
1179 {
1180 "name": "internal memory buffer temps",
1181 "interface": "xyz.openbmc_project.Sensor.Value",
1182 "property": { "name": "Value" }
1183 }
1184 ],
1185 "state": 72.0,
1186 "delta": 150
1187 },
1188 {
1189 "name": "set_net_increase_target",
1190 "groups": [
1191 {
1192 "name": "dram and external memory buffer temps",
1193 "interface": "xyz.openbmc_project.Sensor.Value",
1194 "property": { "name": "Value" }
1195 }
1196 ],
1197 "state": 55.0,
1198 "delta": 200
1199 },
1200 {
1201 "name": "set_net_increase_target",
1202 "groups": [
1203 {
1204 "name": "external memory buffer temps",
1205 "interface": "xyz.openbmc_project.Sensor.Value",
1206 "property": { "name": "Value" }
1207 }
1208 ],
1209 "state": 55.0,
1210 "delta": 200
1211 },
1212 {
1213 "name": "set_net_increase_target",
1214 "groups": [
1215 {
1216 "name": "vdd vrm temps",
1217 "interface": "xyz.openbmc_project.Sensor.Value",
1218 "property": { "name": "Value" }
1219 }
1220 ],
1221 "state": 85.0,
1222 "delta": 255
Matthew Barthd8b08ed2021-12-07 20:41:27 -06001223 },
1224 {
Matthew Barth87eba632021-12-08 22:04:29 -06001225 "name": "set_net_increase_target",
1226 "groups": [
1227 {
1228 "name": "nvme temps",
1229 "interface": "xyz.openbmc_project.Sensor.Value",
1230 "property": { "name": "Value" }
1231 }
1232 ],
1233 "state": 58.0,
1234 "delta": 200
1235 },
1236 {
Matthew Barthd8b08ed2021-12-07 20:41:27 -06001237 "name": "set_net_decrease_target",
1238 "groups": [
1239 {
1240 "name": "proc0 core temps",
1241 "interface": "xyz.openbmc_project.Sensor.Value",
1242 "property": { "name": "Value" }
1243 }
1244 ],
1245 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1246 "delta": 50
1247 },
1248 {
1249 "name": "set_net_decrease_target",
1250 "groups": [
1251 {
1252 "name": "proc1 core temps",
1253 "interface": "xyz.openbmc_project.Sensor.Value",
1254 "property": { "name": "Value" }
1255 }
1256 ],
1257 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1258 "delta": 50
1259 },
1260 {
1261 "name": "set_net_decrease_target",
1262 "groups": [
1263 {
1264 "name": "proc2 core temps",
1265 "interface": "xyz.openbmc_project.Sensor.Value",
1266 "property": { "name": "Value" }
1267 }
1268 ],
1269 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1270 "delta": 50
1271 },
1272 {
1273 "name": "set_net_decrease_target",
1274 "groups": [
1275 {
1276 "name": "proc3 core temps",
1277 "interface": "xyz.openbmc_project.Sensor.Value",
1278 "property": { "name": "Value" }
1279 }
1280 ],
1281 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1282 "delta": 50
1283 },
1284 {
1285 "name": "set_net_decrease_target",
1286 "groups": [
1287 {
1288 "name": "proc4 core temps",
1289 "interface": "xyz.openbmc_project.Sensor.Value",
1290 "property": { "name": "Value" }
1291 }
1292 ],
1293 "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
1294 "delta": 50
1295 },
1296 {
1297 "name": "set_net_decrease_target",
1298 "groups": [
1299 {
1300 "name": "proc5 core temps",
1301 "interface": "xyz.openbmc_project.Sensor.Value",
1302 "property": { "name": "Value" }
1303 }
1304 ],
1305 "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
1306 "delta": 50
1307 },
1308 {
1309 "name": "set_net_decrease_target",
1310 "groups": [
1311 {
1312 "name": "proc6 core temps",
1313 "interface": "xyz.openbmc_project.Sensor.Value",
1314 "property": { "name": "Value" }
1315 }
1316 ],
1317 "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
1318 "delta": 50
1319 },
1320 {
1321 "name": "set_net_decrease_target",
1322 "groups": [
1323 {
1324 "name": "proc7 core temps",
1325 "interface": "xyz.openbmc_project.Sensor.Value",
1326 "property": { "name": "Value" }
1327 }
1328 ],
1329 "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
1330 "delta": 50
1331 },
1332 {
1333 "name": "set_net_decrease_target",
1334 "groups": [
1335 {
1336 "name": "proc0 ioring temp",
1337 "interface": "xyz.openbmc_project.Sensor.Value",
1338 "property": { "name": "Value" }
1339 }
1340 ],
1341 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1342 "delta": 50
1343 },
1344 {
1345 "name": "set_net_decrease_target",
1346 "groups": [
1347 {
1348 "name": "proc1 ioring temp",
1349 "interface": "xyz.openbmc_project.Sensor.Value",
1350 "property": { "name": "Value" }
1351 }
1352 ],
1353 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1354 "delta": 50
1355 },
1356 {
1357 "name": "set_net_decrease_target",
1358 "groups": [
1359 {
1360 "name": "proc2 ioring temp",
1361 "interface": "xyz.openbmc_project.Sensor.Value",
1362 "property": { "name": "Value" }
1363 }
1364 ],
1365 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1366 "delta": 50
1367 },
1368 {
1369 "name": "set_net_decrease_target",
1370 "groups": [
1371 {
1372 "name": "proc3 ioring temp",
1373 "interface": "xyz.openbmc_project.Sensor.Value",
1374 "property": { "name": "Value" }
1375 }
1376 ],
1377 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1378 "delta": 50
1379 },
1380 {
1381 "name": "set_net_decrease_target",
1382 "groups": [
1383 {
1384 "name": "proc4 ioring temp",
1385 "interface": "xyz.openbmc_project.Sensor.Value",
1386 "property": { "name": "Value" }
1387 }
1388 ],
1389 "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
1390 "delta": 50
1391 },
1392 {
1393 "name": "set_net_decrease_target",
1394 "groups": [
1395 {
1396 "name": "proc5 ioring temp",
1397 "interface": "xyz.openbmc_project.Sensor.Value",
1398 "property": { "name": "Value" }
1399 }
1400 ],
1401 "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
1402 "delta": 50
1403 },
1404 {
1405 "name": "set_net_decrease_target",
1406 "groups": [
1407 {
1408 "name": "proc6 ioring temp",
1409 "interface": "xyz.openbmc_project.Sensor.Value",
1410 "property": { "name": "Value" }
1411 }
1412 ],
1413 "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1414 "delta": 50
1415 },
1416 {
1417 "name": "set_net_decrease_target",
1418 "groups": [
1419 {
1420 "name": "proc7 ioring temp",
1421 "interface": "xyz.openbmc_project.Sensor.Value",
1422 "property": { "name": "Value" }
1423 }
1424 ],
1425 "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
1426 "delta": 50
1427 },
1428 {
1429 "name": "set_net_decrease_target",
1430 "groups": [
1431 {
1432 "name": "dram temps",
1433 "interface": "xyz.openbmc_project.Sensor.Value",
1434 "property": { "name": "Value" }
1435 }
1436 ],
1437 "state": 63.0,
1438 "delta": 40
1439 },
1440 {
1441 "name": "set_net_decrease_target",
1442 "groups": [
1443 {
1444 "name": "pmic temps",
1445 "interface": "xyz.openbmc_project.Sensor.Value",
1446 "property": { "name": "Value" }
1447 }
1448 ],
1449 "state": 49.0,
1450 "delta": 40
1451 },
1452 {
1453 "name": "set_net_decrease_target",
1454 "groups": [
1455 {
1456 "name": "internal memory buffer temps",
1457 "interface": "xyz.openbmc_project.Sensor.Value",
1458 "property": { "name": "Value" }
1459 }
1460 ],
1461 "state": 69.0,
1462 "delta": 40
1463 },
1464 {
1465 "name": "set_net_decrease_target",
1466 "groups": [
1467 {
1468 "name": "dram and external memory buffer temps",
1469 "interface": "xyz.openbmc_project.Sensor.Value",
1470 "property": { "name": "Value" }
1471 }
1472 ],
1473 "state": 52.0,
1474 "delta": 40
1475 },
1476 {
1477 "name": "set_net_decrease_target",
1478 "groups": [
1479 {
1480 "name": "external memory buffer temps",
1481 "interface": "xyz.openbmc_project.Sensor.Value",
1482 "property": { "name": "Value" }
1483 }
1484 ],
1485 "state": 52.0,
1486 "delta": 40
1487 },
1488 {
1489 "name": "set_net_decrease_target",
1490 "groups": [
1491 {
1492 "name": "vdd vrm temps",
1493 "interface": "xyz.openbmc_project.Sensor.Value",
1494 "property": { "name": "Value" }
1495 }
1496 ],
1497 "state": 80.0,
1498 "delta": 30
Matthew Barth86b881a2021-12-08 22:29:05 -06001499 },
1500 {
1501 "name": "set_net_decrease_target",
1502 "groups": [
1503 {
1504 "name": "nvme temps",
1505 "interface": "xyz.openbmc_project.Sensor.Value",
1506 "property": { "name": "Value" }
1507 }
1508 ],
1509 "state": 55.0,
1510 "delta": 40
Matthew Barthd251fef2021-12-07 20:34:52 -06001511 }
Matthew Barthb6f10352021-12-02 17:42:49 -06001512 ]
Matthew Barthcf34be22021-12-08 22:53:48 -06001513 },
1514 {
1515 // Remove NVMe temperature objects from cache when they are removed from
1516 // dbus. There's no need to react to their removal.
1517 "name": "remove nvme objects",
1518 "groups": [
1519 {
1520 "name": "nvme temps",
1521 "interface": "xyz.openbmc_project.Sensor.Value",
1522 "property": { "name": "Value" }
1523 }
1524 ],
1525 "triggers": [
1526 {
1527 "class": "signal",
1528 "signal": "interfaces_removed"
1529 }
1530 ]
Matt Spinler323694a2021-11-11 16:03:18 -06001531 }
Matthew Barthb123bf62021-10-19 14:48:27 -05001532]