From c8d9dec86615e8fd80c2d4c9bbb7a0a2ade54e0c Mon Sep 17 00:00:00 2001 From: Matthew Barth Date: Thu, 23 May 2019 14:41:28 -0500 Subject: romulus:pfp: Performance enhanced events With updated from openbmc/openbmc#2911, event actions are now able to be configured with group 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 (From meta-ibm rev: 03eacc4ef87b3b89cf36aab977ff4eab68f8b4fc) Change-Id: Ib7eadf5b7c2cb27440e5944348460295334b9f13 Signed-off-by: Matthew Barth Signed-off-by: Brad Bishop --- .../phosphor-fan-control-events-config/events.yaml | 234 ++++++++++++--------- .../recipes-phosphor/fans/phosphor-fan_%.bbappend | 2 - 2 files changed, 137 insertions(+), 99 deletions(-) (limited to 'meta-ibm/meta-romulus') diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml index ddf1556d2..20d2a8814 100644 --- a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml +++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml @@ -96,52 +96,53 @@ 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: 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: nameOwnerChanged description: > - Handle owner signals + 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: - - object - - interface - handler: setService handlers: - name: setProperty @@ -149,12 +150,9 @@ 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 @@ -165,6 +163,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 @@ -222,86 +225,83 @@ actions: events: - name: default_fan_floor_on_service_fail - 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 + 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_fail 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: 255 - type: uint64_t - - name: high_speed_on_occ1_service_fail - 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: 255 type: uint64_t - - name: missing_before_high_speed_air + - name: missing_or_fails_before_high_speed_air groups: - name: air_cooled_zone0_fans interface: xyz.openbmc_project.Inventory.Item property: name: Present type: bool - matches: - - name: propertiesChanged - actions: - - name: count_state_before_speed - count: 1 - property: - value: false - type: bool - speed: - value: 255 - type: uint64_t - - name: fails_before_high_speed_air - groups: - name: air_cooled_zone0_fans interface: xyz.openbmc_project.State.Decorator.OperationalStatus property: name: Functional type: bool - matches: - - name: propertiesChanged + triggers: + - name: init + method: getProperties + handler: setProperty + - name: signal + signal: propertiesChanged + handler: setProperty actions: - name: count_state_before_speed count: 1 @@ -318,8 +318,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: @@ -351,22 +356,53 @@ 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: speed_changes_based_on_core_temps + - name: speed_control_sensors groups: - name: zone0_cores interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged + - name: zone0_dimms + 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: 1sec_speed_change_request_sampling + triggers: + - name: timer + interval: 1000000 + type: repeating actions: + # Speed changes based on core temps - name: set_net_increase_speed + groups: + - name: zone0_cores + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t property: value: 73000 type: int64_t @@ -377,6 +413,12 @@ events: value: 11 type: uint64_t - name: set_net_decrease_speed + groups: + - name: zone0_cores + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t property: value: 70000 type: int64_t @@ -386,20 +428,14 @@ events: delta: value: 11 type: uint64_t - timer: - interval: 5 - - name: speed_changes_based_on_dimm_temps - groups: - - name: zone0_dimms - interface: xyz.openbmc_project.Sensor.Value - property: - name: Value - type: int64_t - matches: - - name: interfacesAdded - - name: propertiesChanged - actions: + # 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 @@ -410,6 +446,12 @@ events: value: 6 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 @@ -419,5 +461,3 @@ events: delta: value: 6 type: uint64_t - timer: - interval: 5 diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend index 8a0875e6a..3ec031946 100644 --- a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend +++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan_%.bbappend @@ -1,7 +1,5 @@ FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${BPN}:" -SRCREV = "d9a580aa5037fdb08911940263a580b036f2d9fa" - # Package configuration FAN_PACKAGES += " \ phosphor-cooling-type \ -- cgit v1.2.3