wspoon: Handle dependent application fails
In addition to property changed and interface added signals, fan control
can subscribe to name owner changed signals for groups to determine
whether or not a service that provides data from that group is still
owned on the bus. This allows events to be defined within the fan
control algorithm that would react to any services it is dependent on
appropriately.
e.g.) If the service that provides either of the OCC active sensor
status fails and is no longer owned on the bus for 5 seconds, the fans
are set to full speed until the service returns or the system is powered
off.
Resolves openbmc/openbmc#2346
Change-Id: Ia681c26f5e2d6794ab2f0f4480e0902100586544
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
index be1a2f0..b5967f0 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -266,6 +266,78 @@
- delta
events:
+ - name: default_fan_floor_on_service_fail
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ group: zone0_ambient
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: default_floor_on_missing_owner
+ - name: high_speed_on_occ0_service_fail
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ group: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: high_speed_on_occ1_service_fail
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ group: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 10500
+ type: uint64_t
- name: missing_before_high_speed_air
zone_conditions:
- name: air_cooled_chassis