613b5367 | 09-May-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:Bonnell: Increase deviation value
Increase Bonnell's lower deviation setting from 18% to 22%. This is necessary because the lower end for the outlet rotors was raised by an earlier commit t
control:Bonnell: Increase deviation value
Increase Bonnell's lower deviation setting from 18% to 22%. This is necessary because the lower end for the outlet rotors was raised by an earlier commit that modified the factor and offset values so that a different fan type can be supported.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie68e6f2a60109b566328ab2bac1cdeb029f255b2
show more ...
|
950ff459 | 24-Apr-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:Bonnell: Increase ambient values by 4.5
Increase any values referencing the ambient temperature by 4.5 degrees to account for the fact that the actual temperature is 4.5 degrees higher than
control:Bonnell: Increase ambient values by 4.5
Increase any values referencing the ambient temperature by 4.5 degrees to account for the fact that the actual temperature is 4.5 degrees higher than what the sensor shows.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I2441c68676a716f7d5324b81bb48102187ab600f
show more ...
|
51465352 | 09-Apr-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:Bonnell: Remove hot PCIe cards
It turns out that Bonnell doesn't have any 'hot' pcie cards, so the floor can just be based on ambient and altitude.
This commit removes the cards from pcie_c
control:Bonnell: Remove hot PCIe cards
It turns out that Bonnell doesn't have any 'hot' pcie cards, so the floor can just be based on ambient and altitude.
This commit removes the cards from pcie_cards.json and removes any PCIe floor index values from the mapped_floor action in events.json. It still leaves the infrastructure to keep things more common with the other IBM systems, and to make it easier to add in a card if/when a hot one comes into plan.
There is also a code update needed to allow an empty pcie_cards.json file.
Tested: Floors are set appropriately based on the altitude and ambient.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I10e6904602c7abf61121f7c610059f164405b758
show more ...
|
31c3ab5a | 02-Apr-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
meson: Fix local cereal build
Currently local build is failing with a message: """ cereal| Exception: Failed to configure the CMake subproject: Could NOT find Boost (missing: Boost_INCLUDE_DIR seria
meson: Fix local cereal build
Currently local build is failing with a message: """ cereal| Exception: Failed to configure the CMake subproject: Could NOT find Boost (missing: Boost_INCLUDE_DIR serialization) Subproject subprojects/cereal is buildable: NO (disabling) """ Since cereal requires boost only for the sandbox build and this functionality is not needed, add option to skip building performance sandbox comparison to solve the issue.
Tested: "meson setup build" no longer fails with the cereal error.
Change-Id: I4c3ba38acbe64ae90de1c4879368fae2a6565709 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
705cd5ab | 03-Apr-2024 |
Matt Spinler <spinler@us.ibm.com> |
monitor:cnfgs:Bonnell: Update tach 1 equation
The Bonnell system will support fans from two different vendors where the equation: "tach1_rpm = (target_rpm * factor) + offset" is slightly different
monitor:cnfgs:Bonnell: Update tach 1 equation
The Bonnell system will support fans from two different vendors where the equation: "tach1_rpm = (target_rpm * factor) + offset" is slightly different between the two.
Change the factor and offset values to one that will work for both.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iffb3f597f4d30b3c3b76edf8950702c0517a59f2
show more ...
|
338b3e3d | 03-Apr-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:Bonnell: Config updates
The following updates were made to the Bonnell fan control config: - Change max RPMs to 17000 from 18000 - The fans could never actually hit 18000 - Add the real PC
control:Bonnell: Config updates
The following updates were made to the Bonnell fan control config: - Change max RPMs to 17000 from 18000 - The fans could never actually hit 18000 - Add the real PCIe card list - Update the floor table and the associated parameters - Some unused floor indices are left in the table to make it easier for future expansion.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ia7f4627f9458322e250452e67f330ede063c7efe
show more ...
|
fc2b078a | 29-Feb-2024 |
Patrick Williams <patrick@stwcx.xyz> |
hwmon_ffdc: fix compile fail with newer glibc
An upcoming Yocto update reveiled a compile failure due to ignoring the return value from `pclose` when used as a unique_ptr deleter. Switch to a lambd
hwmon_ffdc: fix compile fail with newer glibc
An upcoming Yocto update reveiled a compile failure due to ignoring the return value from `pclose` when used as a unique_ptr deleter. Switch to a lambda indirection where the return is explicitly ignored.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ifa5d3f346f75d37075df78acf916dde8fc1ead69
show more ...
|
cca2de0e | 15-Feb-2024 |
Matt Spinler <spinler@us.ibm.com> |
monitor:configs: Modify Rainier2U poweroff rules
Use the new 'fan_frus_with_nonfunc_rotors' power off cause in the Rainier 2U power off config, and adjust the other rules.
The new rules are to powe
monitor:configs: Modify Rainier2U poweroff rules
Use the new 'fan_frus_with_nonfunc_rotors' power off cause in the Rainier 2U power off config, and adjust the other rules.
The new rules are to power off if: 1. A fan is missing at any time. 2. Two fan FRUs have nonfunctional rotors.
So basically the system will stay up if there is one rotor fail or two fails in the same fan. As soon as there are fails in multiple fans the system will power off. If a fan is missing, it will also power off as that changes the airflow for the worse.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I6e4013f4ea4460718e8d1831e866ef6257da607a
show more ...
|
4c62fc77 | 14-Feb-2024 |
Matt Spinler <spinler@us.ibm.com> |
monitor: Add fan_frus_with_nonfunc_rotors cause
Create a new power off rule to power off when a specific number of fan FRUs have nonfunctional rotors. With this rule failing rotors can be treated d
monitor: Add fan_frus_with_nonfunc_rotors cause
Create a new power off rule to power off when a specific number of fan FRUs have nonfunctional rotors. With this rule failing rotors can be treated differently when they are spread across fans FRUS than when they are within the same fan FRU.
For example, if both rotors of a 2 rotor fan fail the system can stay up, but if 2 rotors in separate fans fail then the system could be made to power off.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ia1d13596a9e8a6e3a361e5b631699a3c80e36fb8
show more ...
|
8ef2c86b | 07-Feb-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:Bonnell: Update dram temp thresholds
Move the dram temp range to 64-61 from 68-65.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I0f3847e70e59e8cd15e5934827c9d3df23530bb6 |
0931ad1f | 05-Feb-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:configs:Everest: Update hot cards
The Lassen and Glacier Park EDR cards need to use a value 3 for their PCIe floor index on Everest.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-
control:configs:Everest: Update hot cards
The Lassen and Glacier Park EDR cards need to use a value 3 for their PCIe floor index on Everest.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Idf7c34793f7a9e514886e0ba04997c6a5adc569d
show more ...
|
5d76e652 | 26-Jan-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:configs:rainier: Add new hot card
Add the Narwhal adapter to the hot card list for all of the Rainier models.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iebf50f3d170aa1a1df
control:configs:rainier: Add new hot card
Add the Narwhal adapter to the hot card list for all of the Rainier models.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iebf50f3d170aa1a1dfbf2aeec06d00f666f48007
show more ...
|
a8c1cf50 | 04-Jan-2024 |
Matt Spinler <spinler@us.ibm.com> |
control:config:ibm: Use count_state_floor delay
Add a 5 second delay to the count_state_floor action that watches for non functional sensors to all IBM configurations. With this change, a sensor ha
control:config:ibm: Use count_state_floor delay
Add a 5 second delay to the count_state_floor action that watches for non functional sensors to all IBM configurations. With this change, a sensor has to be nonfunctional for at least 5 seconds for the floor to change.
This is being done because the NVMe temperature sensors would briefly be set to nonfunctional when a drive is removed.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I6fa70f2551c11b2cfe8ee4696b6d72d57a3a7bd5
show more ...
|
7fa4d16e | 04-Jan-2024 |
Matt Spinler <spinler@us.ibm.com> |
control: Add optional delay to count_state_floor
Add an optional delay field to the count_state_floor action that takes a value in seconds. When set to a nonzero value, the action will then require
control: Add optional delay to count_state_floor
Add an optional delay field to the count_state_floor action that takes a value in seconds. When set to a nonzero value, the action will then require the count condition to be satisfied for that amount of time before setting the floor. This can be used to prevent the floor from jumping when there is just short change to a property value, for example if a sensor set to not functional for a short amount of time.
For example:
{ "name": "count_state_floor", "count": 1, "state": false, "delay": 5, "floor": 18000 }
This says that the floor won't be set to 18000 until at least 1 group member has its property value set to false for a continuous 5 seconds.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I67409ce651d9592b1cabb3f7cb36ba998c3ef545
show more ...
|
388fc572 | 29-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer retur
build: use allowed over enabled
Meson feature options are typically in a tri-state of enabled, disabled, or auto. The enabled and disabled functions on an option (from `get_option`) no longer return true for auto features. Instead, the expectation is to use `allowed()` which is true for both enabled and auto.
Switch all uses of `enabled` to `allowed`.
Change-Id: I8d258c64711ba2cb2cdfb19f9cd827c489a417bd Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
3420426c | 06-Dec-2023 |
Matt Spinler <spinler@us.ibm.com> |
cnfgs:p10bmc: Rename the IBM config directories
Due to the fan applications now using the xyz.openbmc_project.Inventory.Decorator.Compatible interface instead of the xyz.openbmc_project.Configuratio
cnfgs:p10bmc: Rename the IBM config directories
Due to the fan applications now using the xyz.openbmc_project.Inventory.Decorator.Compatible interface instead of the xyz.openbmc_project.Configuration.IBMCompatibleSystem one, the names of the systems have changed as the new interface uses a different property value format.
Rename all of the directories that mirror those property names to the new ones.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie541d15b47a155e88800fb7def76c0e8fbd8182b
show more ...
|
b99ce0ed | 30-Nov-2023 |
Chau Ly <chaul@amperecomputing.com> |
Use generic interface to look for configs
IBM has specific interface IBMCompatibleSystem to look for the compatible system location under which the configs are placed. The Entity Manager schema for
Use generic interface to look for configs
IBM has specific interface IBMCompatibleSystem to look for the compatible system location under which the configs are placed. The Entity Manager schema for the property under this interface and the interface name itself can't be generic for other meta systems. To find a more common interface, this should be the one that is probed together with chassis and has its property value corresponding to system's name.
This commit proposes the use of the property Names under the interface xyz.openbmc_project.Inventory.Decorator.Compatible [1]. The property can be configured in chassis's Entity Manager json configuration with a list of one or more compatible system strings. The usage of this interface was mentioned in document [2].
[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/\ yaml/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml [2] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/\ yaml/xyz/openbmc_project/Software/README.md#compatibility
Tested in Ampere's Mt.Mitchell platform.
1. Configure the interface in Motherboard's Entity Manager config: "xyz.openbmc_project.Inventory.Decorator.Compatible": { "Names": ["com.ampere.Hardware.Chassis.Model.MtMitchell"] } 2. Configs are already placed under /usr/share/phosphor-fan-presence/<daemon>/\ com.ampere.Hardware.Chassis.Model.MtMitchell/ 3. When Entity Manager config is probed: $ busctl call -j xyz.openbmc_project.ObjectMapper \ /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper \ GetSubTreePaths sias / 0 1 xyz.openbmc_project.Inventory.Decorator.Compatible { "type": "a{sa{sas}}", "data": [ [ "/xyz/openbmc_project/inventory/system/board/\ Mt_Mitchell_Motherboard" : { "xyz.openbmc_project.EntityManager" : [ ... "xyz.openbmc_project.Inventory.Decorator.Compatible ] } ] ] }
$ busctl get-property xyz.openbmc_project.EntityManager \ /xyz/openbmc_project/inventory/system/board/Mt_Mitchell_Motherboard \ xyz.openbmc_project.Inventory.Decorator.Compatible Names as 1 "com.ampere.Hardware.Chassis.Model.MtMitchell" 4. When phosphor-fan's daemon starts, it can successfully find configs under the folder "com.ampere.Hardware.Chassis.Model.MtMitchell"
Signed-off-by: Chau Ly <chaul@amperecomputing.com> Change-Id: I55107f1c2a78e78ba7cea650b8eaeaf4fd615d2b
show more ...
|
ef17a25a | 07-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: adjust nlohmann-json dependency
- Simplify the dependency logic in the meson.build. - Align the meson dep name with consistent practices from other repos. - Use the non-versioned wrap file.
meson: adjust nlohmann-json dependency
- Simplify the dependency logic in the meson.build. - Align the meson dep name with consistent practices from other repos. - Use the non-versioned wrap file.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I0e3052763bffe9f98d8ca10c5b523b58e000f636
show more ...
|
3494a579 | 28-Nov-2023 |
Matt Spinler <spinler@us.ibm.com> |
monitor: Remove presence check in startMonitor()
Before this fix, there was a window where if a fan was removed after power on but before the monitor start timer expired, no power off actions would
monitor: Remove presence check in startMonitor()
Before this fix, there was a window where if a fan was removed after power on but before the monitor start timer expired, no power off actions would run. This was because the tach sensor value was always zero, so there would be no tach changed signals so no handlers would run to start the countdown to the fan becoming nonfunctional.
The startMonitor() function was calling tachChanged() already manually, but only for present fans. Change the code to call it regardless of if the fan is present or not, so that tachChanged() can properly handle the tach sensor values of zero.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I554e297aeb3f9efb0007721bd8c6305fa706cfed
show more ...
|
1d6b445a | 09-Nov-2023 |
Matt Spinler <spinler@us.ibm.com> |
control:configs:rainier-4u: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and
control:configs:rainier-4u: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and ioring temps and use an offset from the DVFS (dynamic voltage and frequency scaling) sensor for that sensor type.
This is being done because DDR4 and DDR5 memory have different DVFS temperatures where the OCC starts throttling/slewing, and so just hardcoding a single temperature value wouldn't work.
The *_increase_temp and *_decrease_temp modifier values were chosen such that the final increase and decrease parameter temperature values were the same as what the hardcoded temperatures were for DDR4. They were calculated by subtracting the old increase/decrease temp values from the DVFS value.
Note: The 4U and 1S4U Use the same values for everything.
Tested: Checked the parameters that were present on a Rainier-4U: "dram_extmb_dvfs_decrease_temp": 63.0, "dram_extmb_dvfs_increase_temp": 66.0, "pmic_dvfs_decrease_temp": 62.0, "pmic_dvfs_increase_temp": 65.0,
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ia162046dc376d514284303337ba192a79d705b3d
show more ...
|
22fa6e3f | 09-Nov-2023 |
Matt Spinler <spinler@us.ibm.com> |
control:configs:everest: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and io
control:configs:everest: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and ioring temps and use an offset from the DVFS (dynamic voltage and frequency scaling) sensor for that sensor type.
This is being done because DDR4 and DDR5 memory have different DVFS temperatures where the OCC starts throttling/slewing, and so just hardcoding a single temperature value wouldn't work.
The *_increase_temp and *_decrease_temp modifier values were chosen such that the final increase and decrease parameter temperature values were the same as what the hardcoded temperatures were for DDR4. They were calculated by subtracting the old increase/decrease temp values from the DVFS value.
Tested: Checked the parameters that were present on an Everest: "dram_extmb_dvfs_decrease_temp": 52.0, "dram_extmb_dvfs_increase_temp": 55.0, "pmic_dvfs_decrease_temp": 55.0, "pmic_dvfs_increase_temp": 58.0,
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I4e76cfc13325df3a3c3d0a993381f2418c088c24
show more ...
|
667922d9 | 09-Nov-2023 |
Matt Spinler <spinler@us.ibm.com> |
control:configs:rainier-2u: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and
control:configs:rainier-2u: Use memory DVFS temps
Instead of hardcoding the increase and decrease temperatures for the memory related sensors, do the same as what was done for the processor core and ioring temps and use an offset from the DVFS (dynamic voltage and frequency scaling) sensor for that sensor type.
This is being done because DDR4 and DDR5 memory have different DVFS temperatures where the OCC starts throttling/slewing, and so just hardcoding a single temperature value wouldn't work.
The *_increase_temp and *_decrease_temp modifier values were chosen such that the final increase and decrease parameter temperature values were the same as what the hardcoded temperatures were for DDR4. They were calculated by subtracting the old increase/decrease temp values from the DVFS value.
Tested: Checked the parameters that were present on a Rainier-2U: "dram_extmb_dvfs_decrease_temp": 52.0, "dram_extmb_dvfs_increase_temp": 55.0, "pmic_dvfs_decrease_temp": 65.0, "pmic_dvfs_increase_temp": 68.0,
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I339df9e803f81ba0e6c1f05bb9403dc4a59ade8e
show more ...
|
8d9c391a | 08-Nov-2023 |
Matt Spinler <spinler@us.ibm.com> |
control: Add power on/offs to flight recorder
Add entries for when the power state changes to the flight recorder. This can help provide context to other entries that may occur due to the power on/o
control: Add power on/offs to flight recorder
Add entries for when the power state changes to the flight recorder. This can help provide context to other entries that may occur due to the power on/off, as well as give a history of the state changes without needing to search journal output, if there is any.
Tested: ``` "Nov 08 18:04:53.922812: pcie_card_floors-58: Found 0 hot cards, 1 with temp sensors, 0 uninteresting", "Nov 08 18:05:12.104198: power: Power off", "Nov 08 18:05:24.830231: pcie_card_floors-58: Found 0 hot cards, 0 with temp sensors, 0 uninteresting", "Nov 08 18:08:24.172855: power: Power On", ```
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I7605401c1dac5162903e13ae8ad71de2928ddd13
show more ...
|
83467409 | 31-Oct-2023 |
Matt Spinler <spinler@us.ibm.com> |
monitor:ibm,bonnell: Increase service mode delay
Change Bonnell's fan monitor service mode delay to 5 minutes. This is the delay that 2 rotors can be missing/faulted before a shutdown is requested.
monitor:ibm,bonnell: Increase service mode delay
Change Bonnell's fan monitor service mode delay to 5 minutes. This is the delay that 2 rotors can be missing/faulted before a shutdown is requested.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I89042efdca4d5dab7e8c58eff19d5604922e7b02
show more ...
|
1b3bcc32 | 31-Oct-2023 |
Matt Spinler <spinler@us.ibm.com> |
control:cnfgs:ibm,bonnell: Enable fan control
Check in the JSON files to enable fan control on IBM's Bonnell system. It is a 1 socket 4 DIMM 2 fan system. It uses the same fan model as the Rainier
control:cnfgs:ibm,bonnell: Enable fan control
Check in the JSON files to enable fan control on IBM's Bonnell system. It is a 1 socket 4 DIMM 2 fan system. It uses the same fan model as the Rainier 2U, and uses mostly the same settings as the Rainier 2U with the exception of having some lower floors, though only when there are no hot PCIe cards present.
The floor values when there are hot PCIe card present may change in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I30b42fa4f2c2715ba26bbfef4a3d28dc77373390
show more ...
|