diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2018-10-25 23:33:52 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-07-09 05:23:58 +0300 |
commit | 65ad33bf4875df5a6fc2739e71e707d8936c278e (patch) | |
tree | 7ec3286495cea5019a776de0a372ad71f6050f48 /meta-ibm/meta-witherspoon/recipes-phosphor/fans | |
parent | a4b5207b292bd7f13ea832a66b25511a26836de9 (diff) | |
download | openbmc-65ad33bf4875df5a6fc2739e71e707d8936c278e.tar.xz |
wspoon:pfp: Performance enhanced events
With updates from openbmc/openbmc#2911, event actions are now able to be
configured with groups subsets and event timers are now included in the
available event triggers. Actions with group subsets allow a single
event's set of triggers to run actions against a given group subset
instead of the entire event groups. Also, with timers being included as
a trigger, events can be configured with or without a timer instead of a
disabled timer being created for events that previously did not require
a timer.
Tested:
Generated code is functionally equivalent to previous yaml
Verified fan control functionality of wspoon image
(From meta-ibm rev: 1a43941fb100db7c46430f0dbbc82799276e9c13)
Change-Id: Ide4167ef1a202381b702b7f6fe58b7f30501ecb3
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/fans')
2 files changed, 463 insertions, 377 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml index 5f6a094ba..74a34e081 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml @@ -141,63 +141,63 @@ groups: matches: - name: propertiesChanged - description: > - A property changed match parameters: - object - interface - signal: propertySignal - name: interfacesAdded - description: > - An interfaces added match parameters: - object - signal: objectSignal - name: interfacesRemoved - description: > - An interfaces removed match parameters: - object - signal: - name: objectSignal - parameters: - - object - - interface - handler: removeInterface - name: nameOwnerChanged - description: > - A name owner changed match parameters: - object - interface - signal: ownerSignal signals: - - name: propertySignal + - name: propertiesChanged description: > - Handle property signals + A property changed match parameters: - type - object - interface - property - handler: setProperty - - name: objectSignal + match: propertiesChanged + - name: interfacesAdded description: > - Handle object signals + An interfaces added match parameters: - type - object - interface - property - handler: setProperty - - name: ownerSignal + match: interfacesAdded + - name: interfacesRemoved description: > - Handle owner signals + An interfaces removed match parameters: - object - interface - handler: setService + match: interfacesRemoved + - name: nameOwnerChanged + description: > + A name owner changed match + parameters: + match: nameOwnerChanged + +methods: + - name: getProperties + description: > + Get the property values of the given group members + by performing a `GetProperty` method call on each + parameters: + - type + - name: nameHasOwner + description: > + A NameHasOwner method call to be performed on all event group members + parameters: handlers: - name: setProperty @@ -205,18 +205,15 @@ handlers: Sets a value for the given object/interface/property parameters: - type - - object - - interface - - property - name: setService description: > - Sets the service name(s) for the given group + Sets the service name and ownership status for the given group parameters: - group - name: removeInterface description: > Removes an interface(and all associated properties) on the - given object from use within actions + given object from use within all event actions parameters: - object - interface @@ -228,6 +225,11 @@ preconditions: enable a set speed event otherwise fan speeds are set to full parameters: - groups + - name: services_missing_owner + description: > + Any services missing an owner enable the events given otherwise + the events are removed/disabled + parameters: actions: - name: call_actions_based_on_timer @@ -293,63 +295,65 @@ actions: events: - name: default_fan_floor_on_service_fail - # No global zone conditions defined == all unless defined on group - groups: - - name: 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 - # No global zone conditions defined == all unless defined on group + precondition: + name: services_missing_owner + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: nameHasOwner + handler: setService + - name: signal + signal: nameOwnerChanged + handler: setService + events: + - name: default_fan_floor + groups: + - name: zone0_ambient + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: timer + interval: 5000000 + type: oneshot + actions: + - name: default_floor_on_missing_owner + - name: high_speed_on_occ_service_fails groups: - name: 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 - # No global zone conditions defined == all unless defined on group - groups: - name: occ1_object interface: org.open_power.OCC.Status property: name: OccActive type: bool - matches: - - name: nameOwnerChanged + triggers: + - name: init + method: nameHasOwner + handler: setService + - name: signal + signal: nameOwnerChanged + handler: setService actions: - name: call_actions_based_on_timer timer: - delay: 5 + interval: 5000000 type: oneshot actions: - name: set_speed_on_missing_owner speed: value: 10500 type: uint64_t - - name: missing_before_high_speed_air + - name: missing_or_fails_before_high_speed_air groups: - name: air_cooled_zone0_fans zone_conditions: @@ -360,19 +364,6 @@ events: property: name: Present type: bool - matches: - - name: propertiesChanged - actions: - - name: count_state_before_speed - count: 1 - property: - value: false - type: bool - speed: - value: 10500 - type: uint64_t - - name: fails_before_high_speed_air - groups: - name: air_cooled_zone0_fans zone_conditions: - name: air_cooled_chassis @@ -382,9 +373,13 @@ events: property: name: Functional type: bool - matches: - - name: interfacesAdded - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: count_state_before_speed count: 1 @@ -394,7 +389,7 @@ events: speed: value: 10500 type: uint64_t - - name: missing_before_high_speed_water_and_air + - name: missing_or_fails_before_high_speed_water_and_air groups: - name: water_and_air_cooled_zone0_fans zone_conditions: @@ -405,19 +400,6 @@ events: property: name: Present type: bool - matches: - - name: propertiesChanged - actions: - - name: count_state_before_speed - count: 1 - property: - value: false - type: bool - speed: - value: 10500 - type: uint64_t - - name: fails_before_high_speed_water_and_air - groups: - name: water_and_air_cooled_zone0_fans zone_conditions: - name: water_and_air_cooled_chassis @@ -427,9 +409,13 @@ events: property: name: Functional type: bool - matches: - - name: interfacesAdded - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: count_state_before_speed count: 1 @@ -450,8 +436,13 @@ events: property: name: Current type: std::string - matches: - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: use_alternate_events_on_state property: @@ -469,8 +460,13 @@ events: property: name: Value type: int64_t - matches: - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: set_floor_from_average_sensor_value map: @@ -498,8 +494,13 @@ events: property: name: Value type: int64_t - matches: - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: set_floor_from_average_sensor_value map: @@ -526,8 +527,13 @@ events: property: name: Value type: int64_t - matches: - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: set_floor_from_average_sensor_value map: @@ -543,74 +549,6 @@ events: - 25000: 7200 - 27000: 10500 type: std::map<int64_t, uint64_t> - - name: speed_changes_based_on_regulator_temps - # No global zone conditions defined == all unless defined on group - groups: - - name: zone0_regulators - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - actions: - - name: set_net_increase_speed - property: - value: 85000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 400 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 82000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 - - name: speed_changes_based_on_pcie_temps - # No global zone conditions defined == all unless defined on group - groups: - - name: zone0_pcie - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - actions: - - name: set_net_increase_speed - property: - value: 55000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 400 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 52000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 - name: occ_active_speed_changes precondition: name: property_states_match @@ -627,202 +565,352 @@ events: name: OccActive type: bool value: true - matches: - - name: interfacesAdded - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty events: - - name: fails_before_high_speed_air - groups: - - name: zone0_cores - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.State.Decorator.OperationalStatus - property: - name: Functional - type: bool - - name: zone0_dimms - interface: xyz.openbmc_project.State.Decorator.OperationalStatus - property: - name: Functional - type: bool - - name: zone0_gpu_cores - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.State.Decorator.OperationalStatus - property: - name: Functional - type: bool - - name: zone0_gpu_memory - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.State.Decorator.OperationalStatus - property: - name: Functional - type: bool - matches: - - name: interfacesAdded - - name: propertiesChanged - actions: - - name: count_state_before_speed - count: 1 - property: - value: false - type: bool - speed: - value: 10500 - type: uint64_t - - name: speed_changes_based_on_core_temps - groups: - - name: zone0_cores - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - - name: interfacesRemoved - actions: - - name: set_net_increase_speed - property: - value: 73000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 400 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 70000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 - - name: speed_changes_based_on_dimm_temps - # No global zone conditions defined == all unless defined on group - groups: - - name: zone0_dimms - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - - name: interfacesRemoved - actions: - - name: set_net_increase_speed - property: - value: 64000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 200 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 61000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 - - name: speed_changes_based_on_gpu_core_temps - groups: - - name: zone0_gpu_cores - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - - name: interfacesRemoved - actions: - - name: set_net_increase_speed - property: - value: 78000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 600 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 75000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 - - name: speed_changes_based_on_gpu_memory_temps - groups: - - name: zone0_gpu_memory - zone_conditions: - - name: air_cooled_chassis - zones: - - 0 - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - - name: interfacesRemoved - actions: - - name: set_net_increase_speed - property: - value: 80000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 600 - type: uint64_t - - name: set_net_decrease_speed - property: - value: 77000 - type: int64_t - factor: - value: 1000 - type: int64_t - delta: - value: 40 - type: uint64_t - timer: - interval: 5 + - name: speed_control_sensors + groups: + - name: zone0_regulators + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_pcie + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_gpu_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + - name: zone0_gpu_memory + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + - name: signal + signal: interfacesRemoved + handler: removeInterface + - name: fails_before_high_speed_air + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + - name: zone0_dimms + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + - name: zone0_gpu_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + - name: zone0_gpu_memory + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: interfacesAdded + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 10500 + type: uint64_t + - name: 1sec_speed_change_request_sampling + triggers: + - name: timer + interval: 1000000 + type: repeating + actions: + # Speed changes based on regulator temps + - name: set_net_increase_speed + groups: + - name: zone0_regulators + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 85000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 400 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_regulators + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 82000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t + # Speed changes based on pcie temps + - name: set_net_increase_speed + groups: + - name: zone0_pcie + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 55000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 400 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_pcie + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 52000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t + # Speed changes based on core temps + - name: set_net_increase_speed + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 73000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 400 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 70000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t + # Speed changes based on dimm temps + - name: set_net_increase_speed + groups: + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 64000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 200 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 61000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t + # Speed changes based on gpu core temps + - name: set_net_increase_speed + groups: + - name: zone0_gpu_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 78000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 600 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_gpu_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 75000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t + # Speed changes based on gpu memory temps + - name: set_net_increase_speed + groups: + - name: zone0_gpu_memory + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 80000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 600 + type: uint64_t + - name: set_net_decrease_speed + groups: + - name: zone0_gpu_memory + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + property: + value: 77000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 40 + type: uint64_t diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend index 2e2e0ec24..58c1a5f9d 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend @@ -1,7 +1,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -SRCREV = "d9a580aa5037fdb08911940263a580b036f2d9fa" - # Package configuration FAN_PACKAGES += " \ phosphor-cooling-type \ |